asterisk安装调试文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Asterisk安装:

安装命令: yum instll asterisk

这个命令安装的普通的release版本

如果需要调试:

到SVN下载asterisk-1.8.8.1上传到虚拟机上

执行./configure --配置makefile文件

Make --编译asterisk

Make install --安装asterisk

Asterisk一般配置

用户配置:用户是在数据库中配置的

相关配置文件:

1.extconfig.conf,配置用户数据来源

sipusers => mysql,global,soc_pbx_users;

sippeers => mysql,general,soc_pbx_users;

mysql:固定,是指用户加载方式

general:对接res_mysql.conf的数据库连接配置

soc_pbx_users:用户所在的表

2.res_mysql.conf配置数据库连接串

[general]

dbhost = 10.1.18.105数据库地址

dbname = asterisk 数据库表空间

dbuser = asterisk 数据库用户名

dbpass = asterisk 数据库密码

dbport = 3306 数据库端口

话单配置: 如不需要话单,可以不配置该项

配置文件:cdr_mysql.conf

配置项:

[general] 和extconfig.conf中配置对应

dbhost = 10.1.18.105数据库地址

dbname = asterisk 数据库表空间

dbuser = asterisk 数据库用户名

dbpass = asterisk 数据库密码

dbport = 3306 数据库端口

[produre] 标志调用存储过程配置项

produrename=p_insert_record存储过程名次

paraNum=7 存储过程参数

paraname1=src 下面是存储过程参数列表,值需要对应cdr的关键字paraname2=dst

paraname3=dcontext

paraname4=clid

paraname5=channel

paraname6=dstchannel

拨号方案配置:

[default-test] --对应USER表中的context字段

exten => _XXX.,1,Set(CALLFILENAME=${CALLERID(num)}_${EXTEN}_${UNIQUEID})

exten => _XXX.,n,Dial(SIP/${EXTEN},10,m)

exten => _XXX.,n,Hangup()

运行命令: service asterisk start 开始

Service asterisk stop 停止

Service asterisk restart 重启

调试步骤:

1.执行gdb asterisk

2.由于涉及到动态库调用,在asterisk主程序中可能没有涉及到所需要调试的代码,所以需要

先预先找到所涉及的代码路径,代码文件名称,需要断点的行数

执行 b chan_sip.c:20333 b 是break简称chan_sip.c文件名20333行号

可能会提示:No source file named chan_sip.c.

Make breakpoint pending on future shared library load? (y or [n])

选y

执行info break可以看到当前断点列表,如下

Num Type Disp Enb Address What

1 breakpoint keep y chan_sip.c:20333

3.运行程序

Run -vvvvvvvvg -vvvvvvg是程序运行阐述

4.使用软终端调用服务,确保调用流程可以走到所设立的断点处

Gdb命令

N单步执行

C 执行到下一个断点,如果只有一个断点,直接走完liuc

S 进入到函数中执行

Bt 查看进程调用堆栈,可以直观的看到程序调用路径

P变量名限制变量的值

一.ASTERISK各个模块功能介绍:

内核模块

内部核心由以下六个部分组成:PBX交换核心模块(PBX Switching Core)、调度和I/O管理模块(Scheduler and I/O Manager)、应用调用模块(Application Launcher)、编解码转换模块(Codec Translator)、动态模块加载器模块(Dynamic Module Loader)和CDR生成模块(CDR Core)。

pbx.c是asterisk的核心模块,每路呼叫都需要经过它调度。pbx实现了builtin applications,也就是内置的应用,比如最常见的Answer,Hangup, Background,Wait等等。

pbx_exec是Answer/BackGround/Busy/Goto/GotoIf/Hangup/Set等builtin applications的执行入口函数,它被pbx_extension_helper调用

相关文档
最新文档