On 11/21/2011 05:53 AM, Mino Haluz wrote:
- Is this method per user?
This method is per any criterion you like. You can use arbitrary profile keys.
- Another thing is, what happens if the BYE is not received (network
issue or whatever), will the dialog expire on the kamailio side so the dialog count could me decremented? I mean, if the user has just 1 voice channel, he could not make a call anymore, that's why it should be reliable..
The dialog module has a dialog expiration timer:
http://www.kamailio.org/docs/modules/3.2.x/modules_k/dialog.html#default-tim...
When this timeout is hit, the dialog module expires the dialog and it stops being tracked, and therefore contributing to the channel utilisation count. You can also optionally have Kamailio spoof a bidirectional BYE upon this event, by setting $dlg_ctx(timeout_bye) = 1.
This dialog timeout has to be short enough to be useful, but long enough not to irritate your users, or, by the same token, allow them to defraud you. It's not necessarily a happy compromise. More advanced strategies for dealing with the lack of BYE problem usually involve some method of dead peer detection that are sometimes outside the scope of Kamailio, such as SIP Session Timers (RFC 4028). Although, I did notice that the rtpproxy module has evolved a parameter called 'timeout_socket':
http://www.kamailio.org/docs/modules/3.2.x/modules/rtpproxy.html#id2551006
If rtpproxy can signal RTP timeout back to the proxy now via RPC in a manner that can be caught in a route, that would do the trick.