前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 ubuntu 12.10 中安装 opensips 1.8.2

在 ubuntu 12.10 中安装 opensips 1.8.2

作者头像
Michael Chen
发布2018-09-05 10:51:24
1.2K0
发布2018-09-05 10:51:24
举报
文章被收录于专栏:SpringSpace.cn

ubuntu 12.10中安装opensips 1.8.2

首先下载opensips-1.8.2_src.tar.gz

解压软件包: tar -zxvf opensips-1.8.2_src.tar.gz

准备步骤: 编译前需确认安装以下软件包: sudo apt-get install bison sudo apt-get install flex

mysql数据库相关软件包安装: sudo apt-get install mysql-server mysql-client 再装开发包 sudo apt-get install libmysqlclient-dev

修改编译配置文件: Makefile.conf 将exclude_modules中 db_mysql去掉

中间可能会有找不到curses.h文件的异常,按如下步骤安装libncurses5-dev包即可。 sudo apt-get install libncurses5 libncurses5-dev

以上步骤操作完毕可执行安装:

sudo make all

sudo make install

安装完毕后修改/usr/local/etc/opensips/opensipsctlrc 文件,需要修改的部分内容如下:

## your SIP domain  SIP_DOMAIN=ubuntustudio

## chrooted directory # $CHROOT_DIR="/path/to/chrooted/directory"

## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, ## by default none is loaded # If you want to setup a database with opensipsdbctl, you must at least specify # this parameter.  DBENGINE=MYSQL

## database host  DBHOST=localhost

## database name (for ORACLE this is TNS name)  DBNAME=opensips

# database path used by dbtext or db_berkeley  DB_PATH="/usr/local/etc/opensips/dbtext"

## database read/write user  DBRWUSER=opensips

## password for database read/write user  DBRWPW="opensipsrw"

## database super user (for ORACLE this is 'scheme-creator' user)  DBROOTUSER="root"

# user name column  USERCOL="username"

执行创建数据库的脚本: opensipsdbctl create MySQL password for root: INFO: test server charset INFO: creating database opensips ... INFO: Core OpenSIPS tables succesfully created. Install presence related tables? (y/n): y  INFO: creating presence tables into opensips ... INFO: Presence tables succesfully created. Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist? (y/n): y INFO: creating extra tables into opensips ... INFO: Extra tables succesfully created.

----------------------------------------- 查看命令: root@ubuntu :/usr/local/etc/opensips# opensipsctl -c /usr/local/sbin/opensipsctl $Revision: 4448 $

Existing commands:

 -- command 'start|stop|restart'

 restart ............................ restart OpenSIPS  start .............................. start OpenSIPS  stop ............................... stop OpenSIPS

 -- command 'acl' - manage access control lists (acl)

 acl show [<username>] .............. show user membership  acl grant <username> <group> ....... grant user membership (*)  acl revoke <username> [<group>] .... grant user membership(s) (*)

 -- command 'cr' - manage carrierroute tables

 cr show ....................................................... show tables  cr reload ..................................................... reload tables  cr dump ....................................................... show in memory tables  cr addrt <routing_tree_id> <routing_tree> ..................... add a tree  cr rmrt  <routing_tree> ....................................... rm a tree  cr addcarrier <carrier> <scan_prefix> <domain> <rewrite_host> ................                <prob> <strip> <rewrite_prefix> <rewrite_suffix> ...............                <flags> <mask> <comment> .........................add a carrier                (prob, strip, rewrite_prefix, rewrite_suffix,...................                 flags, mask and comment are optional arguments) ...............  cr rmcarrier  <carrier> <scan_prefix> <domain> ................ rm a carrier

 -- command 'rpid' - manage Remote-Party-ID (RPID)

 rpid add <username> <rpid> ......... add rpid for a user (*)  rpid rm <username> ................. set rpid to NULL for a user (*)  rpid show <username> ............... show rpid of a user

 -- command 'add|passwd|rm' - manage subscribers

 add <username> <password> .......... add a new subscriber (*)  passwd <username> <passwd> ......... change user's password (*)  rm <username> ...................... delete a user (*)

 -- command 'add|dump|reload|rm|show' - manage address

 address show ...................... show db content  address dump ...................... show cache content  address reload .................... reload db table into cache  address add <grp> <ip> <mask> <port> <proto> [<context_info>] [<pattern>]              ....................... add a new entry              ....................... (from_pattern and tag are optional arguments)  address rm <grp> <ip> <mask> <port> ............... remove all entries              ....................... for the given grp ip mask port

 -- command 'dr' - manage dynamic routing

   * Examples: dr addgw '1' 10 '192.168.2.2' 0 '' 'GW001' 0 'first_gw'    *           dr addgw '2' 20 '192.168.2.3' 0 '' 'GW002' 0 'second_gw'    *           dr rmgw 2    *           dr addgrp 'alice' 'example.com' 10 'first group'    *           dr rmgrp 1    *           dr addcr 'cr_1' '10' 0 'CARRIER_1' 'first_carrier'    *           dr rmcr 1    *           dr addrule '10,20' '+1' '20040101T083000' 0 0 '1,2' 'NA_RULE' 'NA routing'    *           dr rmgrule 1  dr show ............................ show dr tables  dr addgw <gwid> <type> <address> <strip> <pri_prefix>           <attrs> <probe_mode> <description>     ................................. add gateway  dr rmgw <id> ....................... delete gateway  dr addgrp <username> <domain> <groupid> <description>     ................................. add gateway group  dr rmgrp <id> ...................... delete gateway group  dr addcr <carrierid> <gwlist> <flags> <attrs> <description>           ........................... add carrier  dr rmcr <id> ....................... delete carrier  dr addrule <groupid> <prefix> <timerec> <priority> <routeid>             <gwlist> <attrs> <description>     ................................. add rule  dr rmrule <ruleid> ................. delete rule  dr reload .......................... reload dr tables  dr gw_status ....................... show gateway status  dr carrier_status .................. show carrier status

 -- command 'dispatcher' - manage dispatcher

   * Examples:  dispatcher addgw 1 sip:1.2.3.1:5050 1 'outbound gateway'    *            dispatcher addgw 2 sip:1.2.3.4:5050 3 ''    *            dispatcher rmgw 4  dispatcher show ..................... show dispatcher gateways  dispatcher reload ................... reload dispatcher gateways  dispatcher dump ..................... show in memory dispatcher gateways  dispatcher addgw <setid> <destination> <flags> <description>             .......................... add gateway  dispatcher rmgw <id> ................ delete gateway

 -- command 'registrant' - manage registrants

   * Examples:  registrant add sip:opensips.org '' sip:user@opensips.org '' user password sip:user@localhost '' 3600 ''  registrant show ......................... show registrant table  registrant dump ......................... show registrant status  registrant add <registrar> <proxy> <aor> <third_party_registrant>                 <username> <password> <binding_URI> <binding_params>                 <expiry> <forced_socket> . add a registrant  registrant rm ........................... removes the entire registrant table  registrant rmaor <id> ................... removes the gived aor id

 -- command 'db' - database operations

 db exec <query> ..................... execute SQL query  db roexec <roquery> ................. execute read-only SQL query  db run <id> ......................... execute SQL query from $id variable  db rorun <id> ....................... execute read-only SQL query from                                        $id variable  db show <table> ..................... display table content

 -- command 'speeddial' - manage speed dials (short numbers)

 speeddial show <speeddial-id> ....... show speeddial details  speeddial list <sip-id> ............. list speeddial for uri  speeddial add <sip-id> <sd-id> <new-uri> [<desc>] ...            ........................... add a speedial (*)  speeddial rm <sip-id> <sd-id> ....... remove a speeddial (*)  speeddial help ...................... help message     - <speeddial-id>, <sd-id> must be an AoR (username@domain )     - <sip-id> must be an AoR (username@domain )     - <new-uri> must be a SIP AoR (sip:username@domain)     - <desc> a description for speeddial

 -- command 'avp' - manage AVPs

 avp list [-T table] [-u <sip-id|uuid>]      [-a attribute] [-v value] [-t type] ... list AVPs  avp add [-T table] <sip-id|uuid>      <attribute> <type> <value> ............ add AVP (*)  avp rm [-T table]  [-u <sip-id|uuid>]      [-a attribute] [-v value] [-t type] ... remove AVP (*)  avp help .................................. help message     - -T - table name     - -u - SIP id or unique id     - -a - AVP name     - -v - AVP value     - -t - AVP name and type (0 (str:str), 1 (str:int),                               2 (int:str), 3 (int:int))     - <sip-id> must be an AoR (username@domain )     - <uuid> must be a string but not AoR

 -- command 'alias_db' - manage database aliases

 alias_db show <alias> .............. show alias details  alias_db list <sip-id> ............. list aliases for uri  alias_db add <alias> <sip-id> ...... add an alias (*)  alias_db rm <alias> ................ remove an alias (*)  alias_db help ...................... help message     - <alias> must be an AoR (username@domain )"     - <sip-id> must be an AoR (username@domain )"

 -- command 'domain' - manage local domains

 domain reload ....................... reload domains from disk  domain show ......................... show current domains in memory  domain showdb ....................... show domains in the database  domain add <domain> ................. add the domain to the database  domain rm <domain> .................. delete the domain from the database

 -- command 'cisco_restart' - restart CISCO phone (NOTIFY)

 cisco_restart <uri> ................ restart phone configured for <uri>

 -- command 'online' - dump online users from memory

 online ............................. display online users

 -- command 'monitor' - show internal status

 monitor ............................ show server's internal status

 -- command 'ping' - ping a SIP URI (OPTIONS)

 ping <uri> ......................... ping <uri> with SIP OPTIONS

 -- command 'ul|alias' - manage user location or aliases

 ul show [<username>]................ show in-RAM online users  ul show --brief..................... show in-RAM online users in short format  ul rm <username> [<contact URI>].... delete user's usrloc entries  ul add <username> <uri> ............ introduce a permanent usrloc entry  ul add <username> <uri> <expires> .. introduce a temporary usrloc entry

 -- command 'fifo'

 fifo ............................... send raw FIFO command

启动opensips 服务: opensipsctl start ------------------------------------------------------------ 启动服务的过程中可能出现的数据库错误:  ERROR:core:db_check_api: module db_mysql does not export db_use_table function  ERROR:uri:mod_init: No database module found

解决办法:

在/usr/local/etc/opensips/opensips.cfg文件中添加有关数据库的配置如下:

db_default_url="mysql://opensips:opensipsrw@localhost/opensips"

/* uncomment next line for MySQL DB support */  loadmodule "db_mysql.so" 

/* uncomment next lines for MySQL based authentication support      NOTE: a DB (like db_mysql) module must be also loaded */  loadmodule "auth.so"  loadmodule "auth_db.so"  /* uncomment next line for aliases support     NOTE: a DB (like db_mysql) module must be also loaded */  loadmodule "alias_db.so"  /* uncomment next line for multi-domain support     NOTE: a DB (like db_mysql) module must be also loaded     NOTE: be sure and enable multi-domain support in all used modules           (see "multi-module params" section ) */  #loadmodule "domain.so"  /* uncomment the next two lines for presence server support     NOTE: a DB (like db_mysql) module must be also loaded */  #loadmodule "presence.so"  #loadmodule "presence_xml.so" 

# ----------------- setting module-specific parameters ---------------  # ----- mi_fifo params -----  modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")  # ----- rr params -----  # do not append from tag to the RR (no need for this script)  modparam("rr", "append_fromtag", 0)  # ----- registrar params -----  /* uncomment the next line not to allow more than 10 contacts per AOR */  #modparam("registrar", "max_contacts", 10)  # ----- usrloc params -----  #modparam("usrloc", "db_mode",   0)  /* uncomment the following lines if you want to enable DB persistency     for location entries */  modparam("usrloc", "db_mode",   2)  modparam("usrloc", "db_url",      "mysql://opensips:opensipsrw@localhost/opensips")  # ----- uri params -----  modparam("uri", "use_uri_table", 0)  # ----- acc params -----  /* what sepcial events should be accounted ? */  modparam("acc", "early_media", 1)  modparam("acc", "report_cancels", 1)  /* by default ww do not adjust the direct of the sequential requests.     if you enable this parameter, be sure the enable "append_fromtag"     in "rr" module */  modparam("acc", "detect_direction", 0)  /* account triggers (flags) */  modparam("acc", "failed_transaction_flag", 3)  modparam("acc", "log_flag", 1)  modparam("acc", "log_missed_flag", 2)  /* uncomment the following lines to enable DB accounting also */  modparam("acc", "db_flag", 1)  modparam("acc", "db_missed_flag", 2)  # ----- auth_db params -----  /* uncomment the following lines if you want to enable the DB based     authentication */  modparam("auth_db", "calculate_ha1", yes)  modparam("auth_db", "password_column", "password")  #modparam("auth_db", "db_url","mysql://opensips:opensipsrw@localhost/opensips")  #modparam("auth_db", "load_credentials", "")  # ----- alias_db params -----  /* uncomment the following lines if you want to enable the DB based     aliases */  #modparam("alias_db", "db_url",  #   "mysql://opensips:opensipsrw@localhost/opensips")  # ----- domain params -----  /* uncomment the following lines to enable multi-domain detection     support */  #modparam("domain", "db_url",  #   "mysql://opensips:opensipsrw@localhost/opensips")  #modparam("domain", "db_mode", 1)   # Use caching  # ----- multi-module params -----  /* uncomment the following line if you want to enable multi-domain support     in the modules (dafault off) */  #modparam("auth_db|usrloc|uri", "use_domain", 1)  # ----- presence params -----  /* uncomment the following lines if you want to enable presence */  #modparam("presence|presence_xml", "db_url",  #   "mysql://opensips:opensipsrw@localhost/opensips")  #modparam("presence_xml", "force_active", 1)  #modparam("presence", "server_address", "sip:192.168.1.2:5060")  -------------------------------------------------------------

添加sip用户 opensipsctl add username password  

如: opensipsctl add 100 100 opensipsctl add 101 101

使用软电话x-lite成功登陆 查看注册的sip用户 opensipsctl ul show

是否在线 opensipsctl online

root@ubuntu :/usr/local/lib/opensips/modules# opensipsctl ul show Domain:: location table=512 records=2         AOR:: 100                 Contact:: sip:100@192.168.17.1:5061;rinstance=a40cd182a1adbeb8;transport=TCP Q=                         Expires:: 3313                         Callid:: ZTBkZjZlNTJmYzdmOWVlYzI5N2M0NzY5MmFjNGU3ZWQ.                         Cseq:: 2                         User-agent:: X-Lite release 5.0.0 stamp 67284                         State:: CS_SYNC                         Flags:: 0                         Cflag:: 0                         Methods:: 5951         AOR:: 101                 Contact:: sip:101@192.168.17.1:5060;rinstance=1626363c473bd98d Q=                         Expires:: 3591                         Callid:: N2UxZGVkNmNjMWQyOGJkODYzM2Y4NjlmODBlN2UzMjk.                         Cseq:: 1                         User-agent:: X-Lite release 5.0.0 stamp 67284                         State:: CS_NEW                         Flags:: 0                         Cflag:: 0                         Socket:: udp:192.168.17.132:5060                         Methods:: 5951 root@ubuntu :/usr/local/lib/opensips/modules# opensipsctl online 100 101

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012/11/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档