实验模拟环境如下:华为SoftCo模拟软件、两个OpenEye软终端。IP地址与号码分配如下:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
配置命令如下:
config add batch sipue seid 8000 authorizationtype noauth number 5
//批量增加SIP帐号
config add subscriber eid 8000 dn 7000 number 5
//批量增加SIP话机号码
config add prefix dn 7 callcategory basic callattribute inter cldpredeal no minlen 4 maxlen 4 //配置局内字冠
下面是8001呼叫8000的协议流程图:
首先配置好SoftCo交换机之后,然后配置SIP软终端,在配置好之后,会自发向SIP服务器注册,发送register请求报文,服务器收到后注册通过,则返回状态报文OK,表示注册成功。
8001呼叫8000,向SIP服务器发送INVITE报文,向源发送Trying报文,SIP服务器通过查询USN,找到对应的分机号码,然后将INVITE报文转发给8000,8000收到后向服务器返回Trying报文,如果8000接受INVITE的参数,则8000响铃,向SIP服务器发送ringing回铃消息, SIP服务器收到后,将ringing回铃消息转发给8001,这时8001提到回铃声 ;同时如果8000摘机了,向SIP服务器返回状态消息OK,表示对方摘机,SIP服务器转发给8001,8001收到OK后,发送ACK确认,经SIP服务器转发给8001,这时整个通话连接建立起来,用RTP协议来传输语音视频流,双方便能听到声音了。通话一段时间后,如果8001想要结束通话,则挂机,向SIP服务器发送BYE消息,SIP服务器转发给8000,同时返回状态消息OK,8000收到BYE则知道对方已挂机,返回Trying和OK消息,最后整个通话结束。
以上内容均为个人见解,欢迎各位指正!报文详细格式请参考附件文档。
sip消息类型和消息格式
SIP是一个基于文本的协议,使用的是UTF-8字符集.
SIP消息主要分为两大类:
一类是由客户端发往服务器的请求消息(Request);
一类是由服务器发往客户端的应答消息(Response).
一个基本的SIP消息包括起始行、一个或多个头字段、说明头字段结束的空行和一个可选的消息体。
消息=起始行(包括请求行/状态行;请求行规定了请求的类别,而状态行指出了每个请求的状态,比如是成功还是失败。如果是失败的话还要给出失败的原因或类型。)
*头字段
CRLF
[消息体] (消息首部给出了关于请求或应答的更多信息一般包括消息的来源、规定的消息接收方,另外还包括一些其他方面的重要信息。 消息体通常描述将要建立会议的类型包括所交换媒体的描述,但不具体定义消息体的内容或结构,其结构或内容使用另外一个协议来描述,就是会话描述协议 SDP。)
请求消息
请求行=方法 +空格 +请求地址 +SIP版本号 +空行
通过一个请求行作为起始行,请求行包括了方法名、请求的URL、协议版本号、中间用空格分开。
六种请求方法:
INVITE 发出呼叫会话请求
ACK INVITE请求被最终请求
BYE 释放一个呼叫会话
CANCEL 取消挂起的呼叫
REGISTER 登记注册用户代理
OPTIONS 查询服务器能力
应答消息
状态行=SIP版本+空格+状态码+空格+相关文本短语+空行
SIP 应答消息状态码与功能
类型 状态码 状态说明
临时应答(1XX) 100 Trying 正在处理中
180 Ringing 振铃
181 call being forwarder 呼叫正在前向
182 queue 排队
181* session progress 会话进行
临时应答(1XX) 100 Trying 正在处理中
180 Ringing 振铃
181 call being forwarder 呼叫正在前向
182 queue 排队
181* session progress 会话进行
会话成功(2XX) 200 OK 会话成功
重定向(3XX) 300 multiple 多重选择
301 moved permanently 永久移动
302 moved temporaily 临时移动
305 use proxy 用户代理
380 alternative service 替代服务
301 moved permanently 永久移动
302 moved temporaily 临时移动
305 use proxy 用户代理
380 alternative service 替代服务
请求失败(4XX) 400 bad request 错误请求
401unauthorized 未授权
402 payment required 付费要求
403 forbidden 禁止
404 not found 未发现
405 method no allowed 方法不允许
406 not acceptable 不可接受
407 proxy authentication required 代理需要认证
408 request timeout 请求超时
410 gone 离开
413 request entity too large 请求实体太大
414 request-url too long 请求URL太长
415 unsupported media type 不支持的媒体类型
416 unsupported url scheme 不支持的URL计划
420 bad extension 不良扩展
421 extension required 需要扩展
423 interval too brief 间隔太短
480 temporarily unavailable 临时失效
481 call/transaction does not exist 呼叫/事务不存在
482 loop detected 发现环路
483 too many hops 跳数太多
484 address incomplete 地址不完整
485 ambiguous 不明朗
486 busy here 这里忙
487 request terminated 请求终止
488 not acceptable here 这里请求不可接受
491 request pending 未决请求
493 undecipherable 不可辨识
401unauthorized 未授权
402 payment required 付费要求
403 forbidden 禁止
404 not found 未发现
405 method no allowed 方法不允许
406 not acceptable 不可接受
407 proxy authentication required 代理需要认证
408 request timeout 请求超时
410 gone 离开
413 request entity too large 请求实体太大
414 request-url too long 请求URL太长
415 unsupported media type 不支持的媒体类型
416 unsupported url scheme 不支持的URL计划
420 bad extension 不良扩展
421 extension required 需要扩展
423 interval too brief 间隔太短
480 temporarily unavailable 临时失效
481 call/transaction does not exist 呼叫/事务不存在
482 loop detected 发现环路
483 too many hops 跳数太多
484 address incomplete 地址不完整
485 ambiguous 不明朗
486 busy here 这里忙
487 request terminated 请求终止
488 not acceptable here 这里请求不可接受
491 request pending 未决请求
493 undecipherable 不可辨识
服务器失败(5XX) 500 server internal error 服务器内部错误
501 not implemented 不可执行
502 bad gateway 坏网关
503 service unavailable 服务无效
504 server time-out 服务器超时
505 version not supported 版本不支持
513 message too large 消息太大
501 not implemented 不可执行
502 bad gateway 坏网关
503 service unavailable 服务无效
504 server time-out 服务器超时
505 version not supported 版本不支持
513 message too large 消息太大
全局性错误(6XX) 600 busy everywhere 全忙
603 decline 丢弃
604 does not exist anywhere 不存在
606 not acceptable 不可接受
603 decline 丢弃
604 does not exist anywhere 不存在
606 not acceptable 不可接受
转载于:https://blog.51cto.com/tangfangxiao/919908