26 Mar
If you want to use any Asterisk module that needs a timer, like MeetMe, you have to use a module named dahdi (previously named zaptel). DAHDI has one module for each Digium supported card (B410P), and a dummy module (named dahdi_dummy) if you don’t have a hardware card, like me.
The problem appears when you have your Asterisk in a Xen environment. Xen does not allow the use of the RTC, so when using Dahdi/meetme, you get the following in you logs:
res_timing_dahdi.c: Asterisk has detected a problem with your DAHDI configuration and will shutdown for your protection.
So get the sources, and let’s patch it!
In dahdi_dummy.c, you’ll have to comment the two defines USE_RTC, as in a Xen, you can’t use it:
# diff -u dahdi_dummy.c.ori dahdi_dummy.c
— dahdi_dummy.c.ori 2009-03-23 09:50:36.000000000 +0000
+++ dahdi_dummy.c 2009-03-23 08:55:38.000000000 +0000
@@ -59,11 +59,11 @@
#if defined(CONFIG_HIGH_RES_TIMERS) && LINUX_VERSION_CODE >= VERSION_CODE(2,6,22)
#define USE_HIGHRESTIMER
#else
-#define USE_RTC
+//#define USE_RTC
#endif
#else
#if 0
-#define USE_RTC
+//#define USE_RTC
#endif
#endif
#endif
Then compile the module, as usual, with :
Verify that your module has been correctly installed:
Comment out all the defined modules in the /etc/dahdi/modules file.
12 Feb
If you configured your Asterisk/FreeSWITCH server to talk to your freephonie.net (french Free ISP provider), you’ll see in the logs the following warning message:
This is not really a problem, but an annoyance, as it fills up your logs. This is a known problem for more than years, but has never been corrected (neither by Asterisk nor by Cirpack devs). The usual correction was to add the following line to your startup scripts (/etc/rc.local on Debian for example):
But the syntax has changed in iptables, and you’ll get the error:
so, just add one of the 2 available algorithms (bm and kmp):
17 Dec
I didn’t find any example in Python on how to Dial a number from an Asterisk server and link it to another channel. So here’s a quick code to do it. You just need to have a manager defined in your /etc/asterisk/manager.conf defined.
HOST="192.168.1.116"
PORT=5038
p = """Action: login
Events: off
Username: %(username)s
Secret: %(password)s
Action: originate
Channel: SIP/%(local_user)s
WaitTime: 60
CallerId: 600
Exten: %(phone_to_dial)s
Context: default
Priority: 1
Action: Logoff
"""
def click_to_call(phone_to_dial, username, password, local_user):
pattern = p % {
‘phone_to_dial’: phone_to_dial,
‘username’: username,
‘password’: password,
‘local_user’: local_user}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
data = s.recv(1024)
for l in pattern.split(‘n’):
print "Sending>", l
s.send(l+‘rn’)
if l == "":
data = s.recv(1024)
print data
data = s.recv(1024)
s.close()
if __name__ == ‘__main__’:
click_to_call(phone_to_dial=‘123456789′,
username=‘manager_login’, password=‘yourpass’,
local_user=‘600′)
Recent Comments