I am trying to use SIP to do 3rd party Call Control. I am not sure that it's possible, so hopefully someone can enlighten me.
I have the following scenario. On an internal network, there are several phone extensions. Alice has a physical SIP phone, so do all the other people in the office.
What I want to do (for starters), is to allow the following: someone calls Alice. Instead of picking up the physical SIP phone, she instead clicks on some button (let's say one marked Answer
) on her computer screen. That forces the physical phone off hook (e.g. it's now on speaker) and she is talking to whoever called her.
Can this be done? Any code projects, especially in c#, would be welcome.
I've done this type of thing with TAPI and it worked out pretty w开发者_运维百科ell, but TAPI is a dying technology (there is no 64-bit equivalent), so I am looking for a replacement.
The SIP mechanism to let you know that Alice's phone was picked up is an event notification which is documented in RFC 3265 Session Initiation Protocol (SIP)-Specific Event Notification and the specific event package for INVITE relatedd notifications is RFC 4235 An INVITE-Initiated Dialog Event Package for the Session Initiation Protocol (SIP).
In short SIP events work on a subscribe/notify basis where one SIP user agent can subscribe to a notification server for notifications about events that happen on a different useragent. Unfortunately support for SIP events is not that widepread and even when it is supported can be a bit flakey, Asterisk for example used to generate very strange NOTIFY requests.
(Best practices) for 3pcc for SIP are explained in RFC 3725.
Another possibility (that doesn't use 3pcc) is for Alice's softphone to REGISTER with a higher preference than her physical SIP phone. Calls to Alice's Address of Record will go to her softphone, which can REFER the call (so call forwarding/blind transfer) to the SIP phone.
精彩评论