Alex,
thank you for your thorough answers.
Op 28-12-09 17:07, Alex Balashov schreef:
On 12/28/2009 10:54 AM, Antonio Goméz Soto wrote:
- I could not find a way to reboot a phone remotely, can it send
SIP NOTIFY to all phones?
Yes. See the cisco_restart() function in the 'kamctl' script. It uses the MI interface to generate a request:
http://www.kamailio.org/docs/modules/1.5.x/tm.html#id2531975
Please note that although Kamailio does provide this, this goes beyond the realm of what a proxy is supposed to be able to do. Officially, a proxy is an event-driven state machine; it only forwards requests and replies it receives that are generated by other endpoints.
I have noticed that some phones only accept SIP NOTIFY from the registrar server, and some request authentication, and accept them from the same port that the register replies came from, or use SIP transaction numbers.
This would make it mandatory for the register server to send them.
- does it have something like the Asterisk Manager Interface,
so I can connect/create an operator panel for it? Does that already exist somewhere? Something like FOP where operators can transfer calls, and check availability?
It does have a management interface, but it cannot do all that you're asking. Keep in mind that Kamailio/OpenSER is not really a logical endpoint for calls, except in the case of some exceptions where SIP UAS functionality is provided, as in the registrar and the presence user agent, for example. It is not a user agent, so it cannot actually "transfer" anything[1].
Okay, that is clear.
- according to the docs it is not a BTBUA. What does this mean?
I know that asterisk is a BTBUA, but what can a BTBUA do that a SIP proxy cannot? Is it only the moh and conferences?
A B2BUA is a client user agent (UAC) on one side and a server user agent (UAS) on the other side. It can generate new logical call legs, connect call legs, and, usually asynchronously initiate requests. A proxy, in contrast, receives logical call leg A in and sends the same logical call leg B to the next destination; the attributes of the call leg that it is allowed to change in either requests or replies are quite limited, compared to a B2BUA, which, by virtue of generating a new leg and cross-connecting the two, can put whatever it wants in the second one, reinterpret / mangle feedback more extensively, etc.
More generally, outside the realm of protocol mechanics, I think it is important that you understand that Kamailio doesn't really provide "application-level" functionality. To do that, it would have to be able to answer calls itself, which it cannot do. It is not appropriate to compare it to Asterisk; it is not a PBX or anything like that. There is no analogy between them. So, all discussion of MOH and conferences is irrelevant; the absence of support for them is not simply the result of feature set limitations, but rather conceptual incompatibility with the sort of thing that Kamailio is.
I am not at all trying to compare asterisk to kamailio, just trying to find out what each is intended to do, in words and concepts that are familiar to me.
So this means, that if I put kamailio as a frontend to my current asterisk setup, and most calls run outside asterisk, that the operator will not be able to for example break into an already existing conversation? Or pull two established channels away from each other and forcibly redirect them to a conference box?
Will the asterisk queue app be able to work with phones that are registered to kamailio?
I am sorry, I am so full of questions.
Antonio.
- lastly, is there a good tutorial on load-balancing somewhere?
Google the list archives for references to the "dispatcher" module.
-- Alex
[1] Though the dialog module does, as of 1.5.x, provide an interesting hack:
http://www.kamailio.org/docs/modules/1.5.x/dialog.html#id2532224