sip网络电话

来源:互联网 发布:山西恒达蜂药淘宝店 编辑:程序博客网 时间:2024/05/17 06:01

sip网络电话,经过了一个月的时间,终于把网络电话做出来了,其实功能也不是很完善,不过正常沟通是没有问题的,想把这一个月所学的东西都记录下来,分享给大家,也留给自己。
    我是一个即将毕业的学生,来北京找工作,找到了一个公司,比较小,在实习阶段老板让我作这个sip的网络电话,刚开始就觉得莫名其妙,一个新来的,什么都没学过,就做sip,我连什么是sip都不知道,可是没办法,金融危机,工作不好找,有个工作就干吧,而且这个公司跟我学的专业也挺对口的(嵌入式),不过眼前的这个任务确实有点偏。
    刚开始就在网上找这方面的资料,一点一点学,慢慢的了解,想想第一天知道网络电话要先注册的时候就挺好笑的。我的想法就是现在网上找找这方面的资源,然后再找个QQ群去沟通,如果有人带,那就会很快的完成任务阿。
我加过一个QQ群,高手很多,我是菜鸟,很多人都不屑理睬我,追着人家文问题的时候确实很让人烦,时间长了,老在群里面问问题,就说不定会惹到谁,也因为这个闹了一点小矛盾,最后退群了。
    在学习的过程中得到过很多人的帮助,在这里谢谢 颓废 heeb osip(QQ名字,我在群里面的名字叫小饭团)等,还有很多人,不好意思,记不请了,对我的帮助都很大的。
    言归正传开始说事儿:
    首先要配置环境,需要这么几个库,libosip,libeXosip2,ortp,mediastreamer2.
    libosip,libeXosip2这两个库是负责信令部分的,ortp,medastreamer2是负责媒体流传输的。如果想了解更多的关于这些库方面的信息,可以去网上搜索,会有很多相关的信息,总之学习不要怕麻烦。是师傅令进门,修行在个人。学习sip要看rfc3261 3265 3550 4353 ,还有eXosip,osip,ortp,mediastreamer2的帮助手册等。资料多了才好学习嘛。

sipAPI:http://www.gnu.org/software/osip/doc/html/group__oSIP__MESSAGE.html
eXosipAPI:http://www.antisip.com/doc/exosip2/group__eXosip2__sdp.html#gdab1e84d04b387ada72e0d548444f3c0
ortpAPI:http://download.savannah.gnu.org/releases-noredirect/linphone/ortp/docs/ortp_8h.html
mediastreamerAPI:http://www.antisip.com/doc/mediastreamer2/mscommon_8h.html
以上紧紧作为参考,并不是很全,如果想细细的研究分析,建议自己去看源码。哈,虽然会很累,但是效果很好

下面这段是注册代码:

ps:注册其实挺简单的,代码是用eXosip实现的,帮助手册上面都有,只要细细分析就能看明白,网上有pdf版本的,csdn上也有,英文的。

继续,下面这段是拨号的代码:

ps: 初学者可能不了解格式,所以程序会调不通,学的不好给大家随便说一下,别见怪阿。

用户名: 77001234
   密码: 987654321
   要呼叫的号码:12340602252
   服务器ip:192.168.8.24
   端口:5060
   》》  source_call为 77001234@192.168.8.24:5060
   》》  dest_call  为  12340602252@192.168.8.24:5060
   密码没有涉及到,因为注册的时候已经提供密码。