在SIP中注册后检查邀请

问题描述 投票:0回答:2

我一直在用PJSIP开发C#Xamarin应用程序,但遇到了一个小(或大)障碍。我当前设置的系统是,用户将收到来电通知,这使他们可以单击通知并打开应用程序。然后,该应用程序将使用SIP凭据在SIP服务器上注册,并且理想情况下会收到INVITE消息,从而允许他们接听来电。但是,这根本不是它的工作方式。如果在发送INVITE之前在SIP服务器上注册了该应用程序,则可以很好地接收到呼叫。但是,如果在之后注册了应用程序,则发送邀请,客户端将永远不会接收或识别该应用程序。有没有一种方法可以使用SIP手动检查INVITE消息,或者这是根本不存在的功能?

c# sip voip pjsip pjsua2
2个回答
0
投票

问题在于SIP REGISTER方法的工作方式,

SIP REGISTER方法的目的是让SIP服务器知道到达该用户的位置-应该将SIP INVITE发送到哪个IP地址和端口。

如果您尚未注册,则您的SIP服务器将不知道要呼叫时将整个SIP邀请发送给整个Internet的哪个IP地址。

虽然您可以设置应用程序以侦听传入的SIP邀请,并且可以正常工作,但是服务器仍需要知道将其发送到哪个IP地址和端口,因此您需要另一种机制来告知此SIP服务器将SIP邀请发送到哪个IP地址和端口,但这是要解决SIP REGISTER的问题,因此仅使用SIP REGISTER功能可能是最简单的。]

I wrote a blog post on how the SIP REGISTRAR function works in a bit more detail if you're curious.


0
投票

当SIP服务器接收到来电(INVITE消息)时,它需要知道将呼叫转发到哪里。这就是您的应用程序需要在服务器上注册的原因:这将在SIP URI(用户)与其联系地址(IP)之间创建映射。当SIP服务器收到INVITE时,它将检查是否存在消息的Request-URI的映射,如果存在,则将消息转发到相应的联系地址。

© www.soinside.com 2019 - 2024. All rights reserved.