基于sip的voip,新手求助,关于subcribe的一些小问题

xiaoming880828 2011-12-19 08:36:50
请问subcribe的请求是怎么构建的,最好贴出来代码,能在基于exosip的简单的ua上可用就行,先谢谢各位了,顺便问几个其他问题。
sprintf(from,"sip:%s@%s",username,source_url);
sprintf(to,"sip:%s:%s",server_url,server_port);
id = eXosip_subscribe_build_initial_request(&subcribe,to, from, NULL,"alarm!",2000);
eXosip_unlock ();
if(0 > id)
{
printf("subcribe init Failed!\n");
return ;
}
eXosip_lock ();

id = eXosip_subscribe_send_initial_request(subcribe);
eXosip_unlock ();
if(0 != id)
{
printf("subcribe send Failed!\n");
return ;
}
现在这个id==-3,求助
...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoming880828 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 void_wuyu 的回复:]

给你贴个SDP吧,懒得看了,注意换行符
v=0
o=a0000 8748 6672 IN IP4 10.88.170.105
s=SIP Call
c=IN IP4 10.88.170.105
t=0 0
m=audio 16208 RTP/AVP 0 18 102 103 9
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:……
[/Quote]
sdp这个,我有可以成功的,我只是想知道哪里有问题,相互注册不是为了简单的打电话,相当于一个上下级的关系吗,不过还是谢谢你了。问题基本都已经解决了,再等等就给分
乐CC 2011-12-21
  • 打赏
  • 举报
回复
给你贴个SDP吧,懒得看了,注意换行符
v=0
o=a0000 8748 6672 IN IP4 10.88.170.105
s=SIP Call
c=IN IP4 10.88.170.105
t=0 0
m=audio 16208 RTP/AVP 0 18 102 103 9
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:102 G726-24/8000
a=rtpmap:103 G726-32/8000
a=rtpmap:9 G722/16000
a=ptime:20
a=sendrecv
a=rtcp-xr:voip-metrics
实现两个电话相互注册? 应用场景在哪? 如果只是要打电话,大可直接INVITE,一个UA要实现UAC和UAS,这个必须要分离,可以共用一个协议栈,没必要使用一个状态机。
xiaoming880828 2011-12-19
  • 打赏
  • 举报
回复
我的sdp消息哪里错了啊,不带sdp就可以成功
snprintf (tmp, 4096,
"v=0\r\n"
"o=anonymous 0 0 IN IP4 0.0.0.0\r\n"
"t=1 10\r\n"
//"i=A Seminar on thesession description protocol\r\n"
"e=wang.yu@alcatel-sbell.com.cn\r\n"
//"c=IN IP4 224.2.17.12/127\r\n"
"s=session name\r\n"
//"m=audio 49170 RTP/AVP 0\r\n"
//"m=video 51372 RTP/AVP 31\r\n"
"m=application 32416 udp wb\r\n"
"a=username:nimei\r\n"
"a=password:123\r\n");
xiaoming880828 2011-12-19
  • 打赏
  • 举报
回复
还有问题就是我自己做的ua,简单发送个命令给linphone,linphone里面会走到linphone_inc_new_call()
最终会err=linphone_answer_sdp(lc,ev,sdp);
这个err==-1
ms_error("Error during sdp negociation. ");
eXosip_lock();
eXosip_call_send_answer(ev->tid,415,NULL);
eXosip_unlock();
linphone_call_destroy(lc->call);
请问这个是什么情况,是不是我发送的invite消息不对,还是说什么系统环境配置的不对。新手求助了,先谢谢各位
xiaoming880828 2011-12-19
  • 打赏
  • 举报
回复
还有问题是,两个简单的ua是怎么实现互相注册的,单方面注册也行,在发注册消息给对方时候,对面显示事件类型是message——new,是不是这个时候,自己写方法,把这里的message——body,接过来,自己进行管理,还是说系统有现成的方法来管理。

1,394

社区成员

发帖
与我相关
我的任务
社区描述
VOIP相关技术探讨专区
社区管理员
  • VOIP技术探讨社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧