模組可以到選擇表 (register_select_table()) 登記來擴充 select 變數。
select 變數也可以透過 pv 模組的虛擬變數 $sel(name) 取得。(有 @name 了,為何還需要 $sel(name)?)
參考來源:
- http://www.kamailio.org/wiki/cookbooks/4.2.x/selects 或 http://sip-router.org/wiki/cookbooks/selects/devel。
#ifdef NDEBUG而 __assert() 函數如下:
#define assert(expr) ((void) (0))
#else /* Not NDEBUG. */
#define assert(expr) ((void) ((expr) ? 0 : \
(__assert (__STRING(expr), __FILE__, __LINE__, __func__), 0)))
#endif /* NDEBUG. */
static smallint in_assert; /* bss inits to 0. */
void __assert(const char *assertion, const char * filename,
unsigned int linenumber, register const char * function)
{
if (!in_assert) {
in_assert = 1;
fprintf(stderr,
"%s: %d: %s: Assertion `%s' failed.\n",
filename,
linenumber,
/* Function name isn't available with some compilers. */
((function == NULL) ? "?function?" : function),
assertion
);
}
abort();
}
所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...