logo资料库

opensips中文手册(V2.2).pdf

第1页 / 共95页
第2页 / 共95页
第3页 / 共95页
第4页 / 共95页
第5页 / 共95页
第6页 / 共95页
第7页 / 共95页
第8页 / 共95页
资料共95页,剩余部分请下载后查看
一、 OpenSIPS安装部署
1.1. 下载OpenSIPS v2.2
1.1.1. 从网页获取分支文件
1.1.2. 从sourceForge获取tar包
1.2. 编译和安装opensips
1.2.1. 视频教程
1.2.2. 编译
1.2.2.1. 配置编译项
1.2.2.2. 配置具有外部依赖的编译项
1.2.3. 安装
1.2.3.1. 减少编译时间
1.2.3.2. 配置安装路径
1.3. 部署数据库
1.3.1. 配置db证书
1.3.2. 创建数据库
二、 OpenSIPS配置
2.
2.1. RC文件
2.2. 配置文件
2.3. 产生配置文件
2.3.1. 使用menuconfig工具
2.3.2. 配置文件的类型
2.3.3. 签名产生的脚本的编辑
2.4. 脚本格式
2.4.1. 全局参数
2.4.2. 模块部分
2.4.3. 路由逻辑
2.4.4. 全局参数
2.4.5. 核心关键字Core keywords
2.4.5.1. af
2.4.5.2. dst_ip
2.4.5.3. dst_port
2.4.5.4. from_uri
2.4.5.5. method
2.4.5.6. msg:len
2.4.5.7. $retcode
2.4.5.8. proto
2.4.5.9. status
2.4.5.10. src_ip
2.4.5.11. src_port
2.4.5.12. to_uri
2.4.5.13. uri
2.4.6. 核心表达式Core Values
2.4.6.1. INET
2.4.6.2. INET6
2.4.6.3. TCP
2.4.6.4. UDP
2.4.6.5. max_len
2.4.6.6. myself
2.4.6.7. null
2.4.7. 核心参数Core parameters
2.4.7.1. abort_on_assert
2.4.7.2. advertised_address
2.4.7.3. advertised_port
2.4.7.4. alias
2.4.7.5. auto_aliases
2.4.7.6. bin_listen(Removed in OpenSIPS 2.2)
2.4.7.7. bin_children(Removed in OpenSIPS 2.2)
2.4.7.8. cfg_file
2.4.7.9. cfg_line
2.4.7.10. check_via
2.4.7.11. children
2.4.7.12. chroot
2.4.7.13. debug_mode
2.4.7.14. db_version_table
2.4.7.15. db_default_url
2.4.7.16. db_max_async_connections
2.4.7.17. debug(Removed in OpenSIPS 2.2)
2.4.7.18. disable_503_translation
2.4.7.19. disable_core_dump
2.4.7.20. disable_dns_blacklist
2.4.7.21. disable_dns_failover
2.4.7.22. disable_stateless_fwd
2.4.7.23. dns
2.4.7.24. dns_retr_time
2.4.7.25. dns_servers_no
2.4.7.26. dns_try_ipv6
2.4.7.27. dns_try_napt
2.4.7.28. dns_use_search_list
2.4.7.29. dst_blacklist
2.4.7.30. enable_asserts
2.4.7.31. event_pkg_threshold
2.4.7.32. event_shm_threshold
2.4.7.33. exec_dns_threshold
2.4.7.34. exec_msg_threshold
2.4.7.35. fork(Removed in OpenSIPS 2.2)
2.4.7.36. group gid(Removed in OpenSIPS 2.2)
2.4.7.37. include_file
2.4.7.38. import_file
2.4.7.39. listen
2.4.7.40. log_facility
2.4.7.41. log_level
2.4.7.42. log_name
2.4.7.43. log_stderror
2.4.7.44. max_while_loops
2.4.7.45. maxbuffer
2.4.7.46. mem-group
2.4.7.47. mem_warning
2.4.7.48. mem_warming_percentage
2.4.7.49. mem_warming_pattern_file
2.4.7.50. memdump | mem_dump
2.4.7.51. memlog | mem_log
2.4.7.52. mcast_loopback
2.4.7.53. mcast_ttl
2.4.7.54. mhomed
2.4.7.55. mpath
2.4.7.56. open_file_limit
2.4.7.57. poll_method
2.4.7.58. port
2.4.7.59. query_buffer_size
2.4.7.60. query_flush_time
2.4.7.61. rev_dns
2.4.7.62. server_header
2.4.7.63. server_signature
2.4.7.64. shm_hash_split_percentage
2.4.7.65. shm_secondary_hash_size
2.4.7.66. sip_warning
2.4.7.67. tcp_children
2.4.7.68. tcp_accept_aliases
2.4.7.69. tcp_listen_backlog
2.4.7.70. tcp_connect_timeout
2.4.7.71. tcp_connection_lifetime
2.4.7.72. tcp_max_connections
2.4.7.73. tcp_max_msg_time
2.4.7.74. tcp_no_new_conn_bflag
2.4.7.75. tcp_threshold
2.4.7.76. tcp_keepalive
2.4.7.77. tcp_keepcount
2.4.7.78. tcp_keepidle
2.4.7.79. tcp_keepinterval
2.4.7.80. tls_ca_list
2.4.7.81. tls_certificate
2.4.7.82. tls_ciphers_list
2.4.7.83. tls_domain
2.4.7.84. tls_handshake_timeout
2.4.7.85. tls_log
2.4.7.86. tls_method
2.4.7.87. tls_port_no
2.4.7.88. tls_private_key
2.4.7.89. tls_require_certificate
2.4.7.90. tls_send_timeout
2.4.7.91. tls_verify
2.4.7.92. tos
2.4.7.93. user uid(在opensips 2.2弃用)
2.4.7.94. user_agent_header
2.4.7.95. wdir
2.4.7.96. xlog_buf_size
2.4.7.97. xlog_force_color
2.4.7.98. xlog_default_level
2.4.8. 路由类型
2.4.8.1. route
2.4.8.2. branch_route
2.4.8.3. failure_route
2.5. 脚本转换
2.5.1. 前言
2.5.2. 字符串转换
2.5.2.1. {s.len}
2.5.2.2. {s.int}
2.5.2.3. {s.md5}
2.5.2.4. {s.substr,offset,length}
2.5.2.5. {s.select,index,separator}
2.5.2.6. {s.encode.hexa}
2.5.2.7. {s.decode.hexa}
2.5.2.8. {s.escape.common}
2.5.2.9. {s.unescape.common}
2.5.2.10. {s.escape.user}
2.5.2.11. {s.unescape.user}
2.5.2.12. {s.escape.param}
2.5.2.13. {s.unescape.param}
2.5.2.14. {s.tolower}
2.5.2.15. {s.toupper}
2.5.2.16. {s.index}
2.5.2.17. {s.rindex}
2.5.2.18. {s.fill.left, tok, len}
2.5.2.19. {s.fill.right, tok, len}
2.5.2.20. {s.width, len}
2.5.2.21. {s.trim}
2.5.2.22. {s.trimr}
2.5.2.23. {s.triml}
2.5.2.24. {s.dec2hex}
2.5.2.25. {s.hex2dec}
2.5.2.26. {s.b64encode}
2.5.2.27. {s.b64decode}
2.5.2.28. {s.xor,secret}
2.5.3. URI转换
2.5.3.1. {uri.user}
2.5.3.2. {uri.host}
2.5.3.3. {uri.passwd}
2.5.3.4. {uri.port}
2.5.3.5. {uri.params}
2.5.3.6. {uri.param,name}
2.5.3.7. {uri.headers}
2.5.3.8. {uri.transport}
2.5.3.9. {uri.ttl}
2.5.3.10. {uri.uparam}
2.5.3.11. {uri.maddr}
2.5.3.12. {uri.method}
2.5.3.13. {uri.lr}
2.5.3.14. {uri.r2}
2.5.3.15. {uri.schema}
2.5.4. VIA transformations
2.5.4.1. {via.name}
2.5.4.2. {via.version}
2.5.4.3. {via.transport}
2.5.4.4. {via.host}
2.5.4.5. {via.port}
2.5.4.6. {via.comment}
2.5.4.7. {via.params}
2.5.4.8. {via.param,name}
2.5.4.9. {via.branch}
2.5.4.10. {via.received}
2.5.4.11. {via.rport}
2.5.5. Parameters List Transformations
2.5.5.1. {param.value,name}
2.5.5.2. {param.exist,name}
2.5.5.3. {param.valueat,index}
2.5.5.4. {param.count}
2.5.6. Name-address Transformations
2.5.6.1. {nameaddr.name}
2.5.6.2. {nameaddr.uri}
2.5.6.3. {nameaddr.len}
2.5.6.4. {nameaddr.param,param_name}
2.5.6.5. {nameaddr.params}
2.5.7. IP Transformations
2.5.7.1. {ip.pton}
2.5.7.2. {ip.ntop}
2.5.7.3. {ip.isip}
2.5.7.4. {ip.family}
2.5.7.5. {ip.resolve}
2.5.8. CSV Transformations
2.5.8.1. {csv.count}
2.5.8.2. {csv.value}
2.5.9. SDP Transformations
2.5.9.1. {sdp.line}
2.5.10. Regular Expression Transformations
2.5.10.1. {re.subst,reg_exp}
2.5.10.2. Examples
2.6. opensips核心变量
2.6.1. Prev
2.6.2. Script variables
2.6.3. AVP variables
2.6.3.1. 事务持久性示例
2.6.3.2. 多个值示例
2.6.4. Pseudo Variables
2.6.4.1. URI in SIP Request’s P-Asserted-Identity header
2.6.4.2. Authentication Digest URI
2.6.4.3. Authentication realm
2.6.4.4. Authentication user
2.6.4.5. Auth username domain
2.6.4.6. Auth nonce
2.6.4.7. Auth response
2.6.4.8. Auth nonce
2.6.4.9. Auth opaque
2.6.4.10. Auth algorithm
2.6.4.11. Auth QOP
2.6.4.12. Auth nonce count(nc)
2.6.4.13. Auth whole username
2.6.4.14. Acc username
2.6.4.15. Argument options
2.6.4.16. Branch flags
2.6.4.17. Branch
2.6.4.18. Branch fields
2.6.4.19. Call-Id
2.6.4.20. Content-Length
2.6.4.21. CSeq number
2.6.4.22. Contact instance
2.6.4.23. contact-Type
2.6.4.24. Domain of destination URI
2.6.4.25. Diversion header URI
2.6.4.26. Diversion “privacy” parameter
2.6.4.27. Diversion “reason” parameter
2.6.4.28. Port of destination URI
2.6.4.29. Transport protocol of destination URI
2.6.4.30. Destination set
2.6.4.31. Destination URI
2.6.4.32. Error class
2.6.4.33. Error level
2.6.4.34. Error info
2.6.4.35. Error reply code
2.6.4.36. Error reply reason
2.6.4.37. From URI domain
2.6.4.38. From display domain
2.6.4.39. Forced socket
2.6.4.40. From tag
2.6.4.41. From URI
2.6.4.42. From URI username
2.6.4.43. OpenSIPS Log Level
2.6.4.44. SIP message buffer
2.6.4.45. Message Flags
2.6.4.46. SIP message ID
2.6.4.47. SIP message length
2.6.4.48. Domain in SIP Request’s original URI
2.6.4.49. Port of SIP request’s original URI
2.6.4.50. Transport protocol of SIP request original URI
2.6.4.51. SIP Request’s original URI
2.6.4.52. Username in SIP Request’s original URI
2.6.4.53. Route parameter
2.6.4.54. Domain in SIP Request’s P-Preferred-Identity header URI
2.6.4.55. Display Name in SIP Request’s P-Preferred-Identity header
2.6.4.56. Process id
2.6.4.57. Protocol of received message
2.6.4.58. User in SIP Request’s P-Preferred-Identity header URI
2.6.4.59. URI in SIP Request’s P-Preferred-Identity header
2.6.4.60. Domain in SIP Request’s URI
2.6.4.61. Body of request/reply
2.6.4.62. Returned code
2.6.4.63. Remote-Party-ID header URI
2.6.4.64. SIP request’s method
2.6.4.65. SIP request’s port
2.6.4.66. Transport protocol of SIP request URI
2.6.4.67. SIP reply’s reason
2.6.4.68. SIP reply’s status
2.6.4.69. Refer-to URI
2.6.4.70. SIP Request’s URI
2.6.4.71. Username in SIP Request’s URI
2.6.4.72. Q value of the SIP Request’s URI
2.6.4.73. Received IP address
2.6.4.74. Received port
2.6.4.75. Script flags(Removed in OpenSIPS 2.2)
2.6.4.76. IP source address
2.6.4.77. Source port
2.6.4.78. To URI Domain
2.6.4.79. To display name
2.6.4.80. To tag
2.6.4.81. To URI
2.6.4.82. To URI Username
2.6.4.83. Formatted date and time
2.6.4.84. Branch index
2.6.4.85. String formatted time
2.6.4.86. Current unix time stamp in seconds
2.6.4.87. Startup unix time stamp
2.6.4.88. User agent header
2.6.4.89. SIP Headers
2.6.4.90. Route Type
2.6.4.91. Current script line and file
2.6.4.92. $shv(name)
2.6.5. Escape Sequences(转移序列)
2.6.5.1. Foreground and background colors
2.6.5.2. 示例
Opensips V2.2 中文手册
申 明 1、 本文收集于互联网,由 ligen119 整理,本人不拥有版权。 2、 本文内容的主要来源:csdn 流水夜月的博客,博客地址: https://me.csdn.net/blog/long_longago 。 3、 想到了再加上。 2 / 95
一、 1.1. 1.2. 1.3. 二、 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 目 录 OpenSIPS 安装部署 ..........................................................................................................................5 下载 OpenSIPS v2.2 ................................................................................................................5 1.1.1. 从网页获取分支文件 .....................................................................................................5 1.1.2. 从 sourceForge 获取 tar 包 .........................................................................................5 编译和安装 opensips ..............................................................................................................5 1.2.1. 视频教程 ............................................................................................................................5 1.2.2. 编译 .....................................................................................................................................5 1.2.3. 安装 .....................................................................................................................................7 部署数据库 ................................................................................................................................8 1.3.1. 配置 db 证书 ....................................................................................................................8 1.3.2. 创建数据库 .......................................................................................................................8 OpenSIPS 配置 ...................................................................................................................................9 RC 文件........................................................................................................................................9 配置文件 .................................................................................................................................. 10 产生配置文件 ......................................................................................................................... 11 2.3.1. 使用 menuconfig 工具 ............................................................................................... 11 2.3.2. 配置文件的类型 ........................................................................................................... 11 2.3.3. 签名产生的脚本的编辑 ............................................................................................. 13 脚本格式 .................................................................................................................................. 13 2.4.1. 全局参数 ......................................................................................................................... 14 2.4.2. 模块部分 ......................................................................................................................... 14 2.4.3. 路由逻辑 ......................................................................................................................... 15 2.4.4. 全局参数 ......................................................................................................................... 15 2.4.5. 核心关键字 Core keywords ...................................................................................... 16 2.4.6. 核心表达式 Core Values ........................................................................................... 20 2.4.7. 核心参数 Core parameters ....................................................................................... 22 2.4.8. 路由类型 ......................................................................................................................... 51 脚本转换 .................................................................................................................................. 53 2.5.1. 前言 .................................................................................................................................. 53 2.5.2. 字符串转换 .................................................................................................................... 55 2.5.3. URI 转换 .......................................................................................................................... 61 VIA transformations .................................................................................................... 64 2.5.4. Parameters List Transformations ............................................................................ 67 2.5.5. 2.5.6. Name-address Transformations ............................................................................. 69 IP Transformations ...................................................................................................... 70 2.5.7. CSV Transformations .................................................................................................. 71 2.5.8. 2.5.9. SDP Transformations .................................................................................................. 71 2.5.10. Regular Expression Transformations ..................................................................... 72 opensips 核心变量 ............................................................................................................... 73 Prev ................................................................................................................................... 73 Script variables.............................................................................................................. 74 AVP variables ................................................................................................................ 75 2.6.1. 2.6.2. 2.6.3. 3 / 95
2.6.4. 2.6.5. Pseudo Variables ......................................................................................................... 77 Escape Sequences(转移序列) ............................................................................ 94 4 / 95
一、 OpenSIPS 安装部署 1.1. 下载 OpenSIPS v2.2 有多中方法可以下载 opensips 1.1.1. 从网页获取分支文件 最新的 2.2 版本的 tar 包可以直接从项目网址下载 http://opensips.org/pub/opensips/2.2.x/ 1.1.2. 从 sourceForge 获取 tar 包 从项目网址上获取的分支文件也可以在 sourceForge 下载。建议使用这种方式, 下载更快 https://sourceforge.net/projects/opensips/files/OpenSIPS/ 1.2. 编译和安装 opensips 1.2.1. 视频教程 opensips 团队已经举办了一次网络研讨会,将指导您快速安装 opensips(下载源 码,编译,部署等)和 opensips 控制面板(安装和配置用户)。并向您展示怎 么在几分钟内获取一个功能齐全的平台。如果你觉得基于文本的视频教程更容 易,请试试访问 opensips 安装研讨会页面并下载研讨会记录 1.2.2. 编译 切换到 opensips 源码更目录,在这个目录运行如下命令 5 / 95
make all 那么 opensip 以及配置的模块都会被编译 1.2.2.1. 配置编译项 opensips 有各种能力相关的的编译时选项,例如你可以启用内存条是分配器或 者启用 tls(默认情况下禁用)等等 为了更改这些编译时选项,你需要使用 menuconfig 工具,因为 menuconfig 工具 依赖于 curses,在使用之前需要安装 nurses 开发库。在基于 debian 的系统中, 应该运行如下命令 apt-get install libncurses5-dev 之后在 opensips 源码根目录,运行如下命令 make menuconfig 导航到 配置编译选项菜单,你只需要使用 arrows 键(UP + DOWN)去浏览遨 游上午选项(在控制台底部简要介绍了他们)。启用或者禁用他们是通过空格 键完成的。完成配置后,可以使用 q 键返回然后点击“保存配置” 修改编译选项后,你应该重新编译安装 opensips 1.2.2.2. 配置具有外部依赖的编译项 有些 opensips 模块默认不编译,因为他们需要一些外呼依赖,而这些依赖并非 来自你的系统。因此当你下载并安装源码是,这些模块需要特别关注。比如 DB_MYSQL(依赖于 mysql 开发库),JSON(依赖于外部的 JSON_parse) 为了使用这些模块,你需要使用 menuconfig 工具 在 opensips 源代码根目录,运行’make menuconfig’,并且切到’configure 6 / 95
excluded modules’,在这里你可以看到所有默认不开启的模块列表,并且模块功 能的简明描述位于控制台底部。 使用空格启用或者禁用某个模块。一旦你选择了你需要的模块,按“q”返回上一 个选项,然后点击“save changes”。工具将会展示你启用的模块,并展示成功编 译这些模块锁需要的依赖。 更改之后需要重新编译安装。 1.2.3. 安装 为了安装 opensips,切到源代码根目录,运行如下指令 make install 默认情况下 opensips 将会安装在根目录\ 1.2.3.1. 减少编译时间 为了减少 opensips 的编译时间,可以使用 FASTER 变量。改功能利用‘- jNR_OF_CORES’多核并行编译所有模块。鉴于此,该方法会只能用大量的资源 和进程(不大于内核的数目)当然这个变量会减少大部分编译输出 例如在 4 核机器上安装 opensips,在根目录运行如下指令 FASTER=1 make -j4 install 1.2.3.2. 配置安装路径 因为各种原因(在同一台机器上安装两个不同版本的 opensips),有的时候我 们需要更改 opensips 安装路径。为了达到该目的,你需要使用 menuconfig 工具 运行“make menuconfig”并且切换到“configure install prefix”,然后输入你自定义 7 / 95
的 opensips 安装路径,然后向下导航到“save changes”并点击确定。之后你可以 再进行“make install",那么 opensisp 将会在你指定的目录上安装部署。 1.3. 部署数据库 1.3.1. 配置 db 证书 到[install_path]/etc/opensips/目录,打开文件 opensipsctlrc 并关注下面几行 • DBENGINE= • 当前可用的选项 MYSQL,PGSQL,ORACLE,DB_BERKELEY,或者 DBTEXT • DBHOST= • 输入 DB engine 的主机 • DBPORT= • 输入 DB engine 的端口 • DBNAME= • 要创建的数据库的名字 • DBRWUSER= • 在数据库中为 opensips 创建的具有读写权限的用户名 • DBRWPW= • DBRWUSER 的密码 • DBROOTYSER= • 用于创建数据库,表和 DBRWUSER 的用户 1.3.2. 创建数据库 8 / 95
分享到:
收藏