Hello SIP Protocol
SIP Request Line
Request-Line = Method SP Request-URI SP SIP-Version CRLF
Method:
1. REGISTER for registering contact information.
2. INVITE, ACK, and CANCEL for setting up sessions.
3. BYE for terminating sessions.
4. OPTIONS for querying servers about their capabilities.
Request-URI:
SIP-Version:
1. HTTP <----> SIP
2. HTTP1.1 <----> SIP/2.0
SIP Response Line
Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
Status-Code:
1xx: Provisional -- request received, continuing to process the request;
100 Trying
180 Ringing
181 Call Is Being Forwarded
182 Queued
183 Session Progress
2xx: Success -- the action was successfully received, understood,and accepted;
200 OK
3xx: Redirection -- further action needs to be taken in order to complete the request;
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
305 Use Proxy
380 Alternative Service
4xx: Client Error -- the request contains bad syntax or cannot be fulfilled at this server;
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
410 Gone
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Unsupported URI Scheme
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: Server Error -- the server failed to fulfill an apparently valid request;
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
6xx: Global Failure -- the request cannot be fulfilled at any server.
600 Busy Everywhere
603 Decline
604 Does Not Exist Anywhere
606 Not Acceptable
SIP Header Fileds
TO
To: Carol <sip:carol@chicago.com>
From
From: "Bob" <sips:bob@biloxi.com> ;tag=a48s
From: sip:+12125551212@phone2net.com;tag=887s
From: Anonymous <sip:c8oqz84zk7z@privacy.org>;tag=hyh8
Call-ID
Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@foo.bar.com
CSeq
CSeq: 4711 INVITE
Max-Forwards
Via
Branch ID: MUST always begin with the characters "z9hG4bK"
Contact
SIP Methods
REGISTER
UA <----> Proxy <----> Location Service
OPTIONS
DIALOG
only 2xx and 101-199 responses with a To tag, where the request was INVITE, will establish a dialog.
A dialog established by a non-final response to a request is in the "early" state and it is called an early dialog.
CANCEL
Others
only INVIET has ACK.
"an ACK for a non-2xx response will also have the same branch ID as the INVITE whose response it acknowledges", that means ACK with non-success response will be part of the INVITE transaction.
It only has a separate branch ID for 2xx success response which then belongs to another transaction.
Home-Based Routing (S8HR)

Hello SIP Protocol的更多相关文章
- 开源sip server & sip client 和开发库 一览
http://www.voip-info.org/wiki/view/Open+Source+VOIP+Software http://blog.csdn.net/xuyunzhang/article ...
- Open Source VOIP applications, both clients and servers (开源sip server & sip client 和开发库)
SIP Proxies SBO SIP Proxy Bypass All types of Internet Firewall JAIN-SIP Proxy Mini-SIP-Proxy A very ...
- Tencent://Message/协议的实现原理
腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上:并且点击 XXX ,不用加好友也可以聊天 官方链接: http://is.qq.com/w ...
- Linux下编译内核配置选项简介
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...
- openerp - asterisk connector(转载)
原文:http://www.akretion.com/open-source-contributions/openerp-asterisk-voip-connector OpenERP - Aster ...
- 基于QT开发的第三方库
基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库 目录(?)[+] 文章来源:http://blog.csdn.net ...
- RFC3261--sip
本文转载自 http://www.ietf.org/rfc/rfc3261.txt 中文翻译可参考 http://wenku.baidu.com/view/3e59517b1711cc7931b716 ...
- 使用 pjsip 代码独立开发
1.在不改动pjsip代码的情况下,和pjsip工程目录并行建立win32控制台程序工程P2PTraversal 目录结构如下: . ├── pjproject-2.6 └── pjsipdemo 2 ...
- monit官方摘录
Here are the legal global keywords: Keyword Function ----------------------------------------------- ...
随机推荐
- [转]c#快捷键
c#快捷键(成为高手必备) CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT ...
- laravel框架容器管理
来自http://www.cnblogs.com/chy1000/p/7072936.html 本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章 ...
- android 监控应用进程
在android系统中,怎么监控应用的进程改变及消亡呢? 至于监控应用进程能做什么,这个就不多说了,你懂的. 在android系统中有这么一个类ActivityManagerNative,看名称就大概 ...
- Windows和Linux查看端口占用
Windows方法 TCP netstat -aon|findstr "TCP"|findstr "LISTENING"|findstr ":135[ ...
- CPU与内存互联的架构演变
随着计算机中CPU核数目的增加,传统的UMA(unifonn memory access)架构由于对关键硬件(如中央内存控制器)的竞争加剧出现了性能上的瓶颈,即扩展性不强.而NUMA架构则以其良好的可 ...
- ios unicode
转义字符,反斜扛\ \u 后跟4位16进制数 \U 后跟8位16进制数
- python中类与对象之继承
面对对象的三大特性之继承 1.什么是继承? 在程序中,继承指的是class与class之间的关系 继承是一种关系,必须存在两个class才能产生这种关系:被继承的class称为父类,继承的class称 ...
- Mac 系统下 mysql 的安装与配置
1.mysql 的安装 1)官网下载 mysql 安装包:http://www.mysql.com/downloads/ 2)下载后解压打开安装包,点击 pkg 文件进行安装 3)注意:最后一步弹窗会 ...
- vagrant 同时设置多个同步目录
修改Vagrantfile文件 如下所示 config.vm.synced_folder "./", "/var/www/pyxis2", owner: &qu ...
- Junit介绍以及使用
在介绍junit之前,把一些知识点提前了解一下 单元测试是一个对单一实体(类或方法)的测试. 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入.执行条件以及预期结果,以便测试某个程序 ...