即时通讯编写一个C#sip手机应用程序,我需要获取通话记录。我使用PortSip作为客户端sip库。并且存在一个问题:该库具有通话录音功能,但约有10%的通话不录音(不知道为什么,即使重新启动StartRecording也无济于事,它只是无法开始录制当前通话)。
因此,我决定在星号服务器上记录呼叫,并在呼叫结束后将它们下载到我们的数据库中。星号CDR数据存储在mysql数据库中,我不能在那里看到任何唯一的callId。我想知道我们是否可以在表中将通话记录写入数据库,以便通过与cdr相关的一些密钥来获取它们?
或者我看到的另一个选项是记录星号服务器上的所有呼叫,通过ftp将所需的一个下载到我们的计算机并将其保存到我们的服务器。从Asterisk获取通话记录
1
A
回答
2
我肯定会有星号记录呼叫,而不是SIP设备。你可以在你的拨号方案使用Monitor命令,像记录在星号电话:
exten => 555,1,Answer
exten => 555,2,Monitor(wav,filename)
...
这会自动记录到555分机的所有呼叫(您可以使用dialplan pattern自动记录所有分机的所有呼叫,但这将取决于你的特定设置)。如果您不想记录全部,您还可以运行AGI脚本来区分哪些呼叫将被记录。
目标文件名可以由ani-dnis-datetime组成,以使其唯一或与任何other asterisk variables。例如:$ {CALLERID(ani)} - $ {EXTEN}。您还可以使用唯一的呼叫ID变量$ {UNIQUEID},例如$ {CALLERID(ANI)} - $ {EXTEN} - $ {UNIQUEID}。
至于CDR,通过使用cdr_odbc模块,您可以将其作为csv或sqlite文件或关系数据库(如mysql,postgresql等)。
使呼叫唯一的是uniqueid字段。因此,在您的CDR中,您将拥有来源,目的地,所涉频道,日期,回答时间,拨号状态等,以及此唯一字段,因此您可以将给定的呼叫与给定的音频文件(录制的呼叫)并与涉及的SIP设备。如果需要,可以定期下载和备份wav文件。
希望它有帮助!
相关问题
- 1. 如何从iPhone获取通话记录?
- 2. FreePBX/Asterisk通话记录播放每次播放一个流
- 3. 从通话记录中获取最后一个通话详细信息
- 4. Android从通话记录中提取通话的时间
- 5. 如何获取一个号码从通话记录在Android?
- 6. 从NonJailbreakenIPhone获取通话记录详细信息
- 7. Android:从通话记录中获取唯一的联系人
- 8. 创建联系人时从通话记录中获取号码
- 9. 如何在Android中获取电话通话记录
- 10. 通话结束后从通话记录中删除通话
- 11. 每个通话记录获取twilio录音
- 12. Asterisk:记录的行格式
- 13. 从记录获取一个记录集
- 14. 黑莓手机:如何获得通话记录/删除通话记录条目
- 15. Android。通话记录
- 16. android通话记录
- 17. 让服务获得通话记录
- 18. 从Asterisk传入的转移呼叫中获取电话号码
- 19. 在iPhone OS中读取通话记录
- 20. 取黑莓10通话记录
- 21. 添加VOIP通话记录到通话记录IOS
- 22. 从表中获取记录
- 23. 从ptr记录获取TLD?
- 24. 从Cust表获取记录
- 25. 从MySQL获取记录
- 26. 从SQLite获取记录?
- 27. 从整数获取记录?
- 28. 从CoreData获取记录?
- 29. 从Access中获取记录
- 30. 在monotouch中获取电话记录
谢谢你的回答。现在我们执行以下操作:如果我的客户端软件无法在本地记录文件 - 我发送一些DTMF来触发星号记录。之后,我打算从服务器上获取文件..顺便说一下'我的'cdr'mysql数据库中'uniqueid'列是空的!有什么配置错误吗?它可以让我通过我的客户端唯一标识找到带有{{CALLERID(ani)} - $ {EXTEN} - $ {UNIQUEID}的记录文件。 – 0x49D1
不客气!请注意,在录制开始/停止时让客户端进行控制是不安全的,所以我建议在服务器端进行控制。另外你遇到的问题在这里提到:http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql,但我没有自己的问题,所以你可能想发布这个作为一个不同的问题以及你的配置文件。顺便说一句,在链接中还提到,这uniqueid不保证是唯一的:(所以我会与ani-dnis-datetime和/或包括原始频道一起独特的领域。干杯。 – marcelog