前一两年就调试过asterisk,记下来的资料不知道搞哪去了。
昨天帮助公司新同事,再试了一次,发现asterisk和以前弄那会还是有一些变化。
调试详细的步骤如下:
首先,我们需要生成有调试信息的板本。
进入asterisk代码的目录
./configure
make menuselect
这个地方要输入S
再 make 就可以生成再调试信息的板本。
我们要调试的模块是chan_sip.c,由于asterisk这些模块都是动态加载的,所以在
gdb asterisk 的时候是找不到chan_sip.so的调试信息的。
在以前我调试的时候的方法在,在load_dynamic_module处打断点,然后在dlopen的时候单步进入,就可以到chan_sip.c的load_modules
函数,但现在我发现,这也是不行的。
所以我换了一种方式:
查看chan_sip.c:load_module的代码
load_module通过调用 ast_channel_register(&sip_tech)在asterisk里面注册一个channel,而ast_channel_register在现在的调试信息里面是可以找到的。
所以从这个地方入手,在ast_channel_register处打断点。
在发现是chan_sip.c调用这个函数的时候停下来。
bt 一下,bt为打开函数调用堆栈信息,
看到调用他的上一层函数为chan_sip.c:load_module
然后f 1,切换函数堆栈,然后就可以在chan_sip.c里面打断点了。
就可以实现对chan_sip.c的调试。
呵呵,这玩意技术学会了,放在这,好久不用,确实是会手生啊!
lixiaomail
2008-10-24
分享到:
相关推荐
标题中的“部署asterisk项目到Netbeans进行实时调试(图解)”是指将开源的PBX系统Asterisk的源代码导入到Netbeans集成开发环境中,以便进行代码学习、调试和项目开发。Asterisk是一个强大的通信平台,允许开发者构建...
在学习Asterisk时,使用命令`asterisk -vvvg –cps -C`可以开启更详细的调试模式,这对于排查问题和理解系统运行状态非常有帮助。同时,了解如何阅读和分析日志文件(如`backtrace.txt`)也是必要的技能。 2. **...
客户端和AMI文档会包含如何诊断问题、调试代码以及实施定期维护的信息,以确保系统的稳定运行。 综上所述,"Asterisk客户端.rar"这个压缩包包含了丰富的Asterisk客户端和Asterisk Manager API的学习资料,对于想要...
但通常,一个Asterisk的安装包可能包括源代码、编译脚本、配置文件、示例脚本、库文件以及相关文档。在安装和配置Asterisk时,这些文件将扮演不同的角色,例如源代码用于编译构建,配置文件用于定制系统行为,文档则...
循环结构在编写复杂Dialplan时非常有用,它允许系统重复执行某段代码直到满足特定条件为止。这部分介绍了如何在Dialplan中实现循环,以应对诸如自动语音应答系统(IVR)中的菜单选择等场景。 #### 1.3 Controlling ...
6. **配置和管理工具**:Asterisk 1.6可能包含了改进的管理和监控工具,如Asterisk管理界面(AMI)和命令行接口,使系统管理员能更方便地配置、监控和调试系统。 7. **录音和日志记录**:Asterisk具有强大的录音...
3. **日志查看**:提供日志查看功能,帮助用户追踪错误和调试问题。 4. **安全控制**:支持用户权限管理,确保只有授权的用户才能访问和更改设置。 5. **扩展性**:Asterisk GUI通常与其他模块如FreePBX、Elastix...
2. **abe_tech_manual.pdf**:Asterisk Build Environment(Asterisk构建环境)技术手册,可能会详细介绍如何构建和定制Asterisk环境,包括编译源代码,添加自定义模块,以及调试技巧。 3. **zapata.conf.pdf**:...
在你提到的"asterisk-speech-recog-0.5"压缩包中,可能包含了实现这一功能的源代码和AGI脚本。 1. Asterisk:Asterisk是一个开源的IP电话系统,它提供了PBX(Private Branch eXchange)的功能,能够处理电话呼叫、...
- 解压libpri源代码,进入目录,运行`make`和`make install`进行编译和安装。 5. **安装DAHDI驱动**: - 解压DAHDI驱动,编译并安装。DAHDI是Asterisk用于处理模拟和数字电话线路的驱动框架。 6. **安装DAHDI-...
《 Asterisk 源代码深度解析》 Asterisk,这个源自开源社区的VoIP(Voice over Internet Protocol)电话系统,已经成为全球范围内广泛使用的PBX(Private Branch Exchange)软件。其核心价值在于提供了灵活的电话...
- 使用提供的命令行,下载 IPP 相关的软件包,包括.g729-rob.diff(G.729的补丁文件)、ipp样本代码以及IPP库。 - 创建一个授权文件,并将许可文件的内容粘贴进去。 4. **安装IPP软件包**: - 解压并安装IPP库,...
然后,你可以使用 `asterisk -r` 登录到 CLI,进一步检查和调试系统。 总结来说,安装 Asterisk 在 CentOS 上需要安装必要的依赖库,获取并编译 Asterisk 源代码,以及配置和测试安装后的系统。整个过程可能需要...
6. **NoOp**: 不执行任何操作,常用于调试时打印变量值。 7. **Perl**: 使用Perl脚本。 8. **PHP**: 使用PHP脚本。 9. **Read**: 通过DTMF读取变量值。 10. **TXTCIDName**: 从TXT记录中查找来电者姓名。 11. **User...
在实现FGcom语音对讲功能时,我们需要在这个文件中设置适当的拨号计划,确保当用户拨打特定的号码或短代码时,能够启动对讲模式。 2. **sip.conf**:这个文件管理SIP(Session Initiation Protocol)用户代理,包括...
- Qt Creator:官方提供的集成开发环境,支持代码编辑、调试和构建。 - Asterisk SDK:用于与Asterisk PBX系统进行交互的开发包。 - Git:版本控制系统,用于获取Qt-Asterisk-Desktop-master压缩包中的源代码。 **...
Asterisk命令行界面(CLI)是与Asterisk交互的主要方式,它允许管理员执行配置更改、监控系统状态、调试问题等任务。CLI通常通过SSH或telnet访问,而Asterisk Commander则提供了一种更友好的Web界面来执行这些命令...
8. **配置文件**:`log4j.properties`是一个日志配置文件,它定义了Jami如何记录和管理日志信息,这对于调试和监控系统行为非常重要。 9. **开源软件**:Jami作为开源软件,意味着它的源代码是公开的,开发者可以...
"在控制台(扬声器)上收听语音邮件录音"这一功能意味着系统会通过控制台的扬声器播放录音,这对于测试、调试或者在没有图形界面的情况下使用Asterisk特别有用。同时,"在呼叫者连接到语音邮件时接听电话"意味着当有...