ניתוק השיחה | asterisk
-
שלום וברכה,
הפנתי קו של ימות המשיח אל השרת שלי (routing_ip)בקובץ extensions.conf הגדרתי כך:
[public] exten => 1000,1,NoOp(Starting simple Python AGI script) same => n,AGI(/etc/asterisk/test/handle_extension.py)
בקובץ handle_extension.py הגדרתי כך:
#!/usr/bin/env python3 import sys def agi_command(command): sys.stdout.write(command + '\n') sys.stdout.flush() return sys.stdin.readline().strip() def main(): env = {} while True: line = sys.stdin.readline().strip() if not line: break key, value = line.split(':', 1) env[key.strip()] = value.strip() agi_channel = env['agi_channel'] agi_command('ANSWER') agi_command(f'VERBOSE "all env: {env}" 1') agi_command('STREAM FILE /etc/asterisk/test/Ketapuach ""') agi_command(f'HANGUP {agi_channel}') if __name__ == "__main__": main()
למעשה, השיחה נענית, נכתב בconsole כל המשתנים, הקובץ מושמע (קובץ של 10 שניות), ואז הכל חוזר על עצמו, ולא מתנתקת השיחה
הנה הלוג שמראה שהוא קולט בהצלחה את המשתנים: (צינזרתי חלק מטעמי פרטיות)
<SIP/207.232.31.138-000000e9>AGI Rx << VERBOSE "all env: {'agi_request': '/etc/asterisk/test/handle_extension.py', 'agi_channel': 'SIP/207.232.31.138-000000e9', 'agi_language': 'en', 'agi_type': 'SIP', 'agi_uniqueid': '1721087037.440', 'agi_version': '20.4.0~dfsg+******', 'agi_callerid': '055******', 'agi_calleridname': '0799******', 'agi_callingpres': '0', 'agi_callingani2': '0', 'agi_callington': '0', 'agi_callingtns': '0', 'agi_dnid': '1000', 'agi_rdnis': 'unknown', 'agi_context': 'public', 'agi_extension': '1000', 'agi_priority': '2', 'agi_enhanced': '0.0', 'agi_accountcode': '', 'agi_threadid': '1243178992****}" 1
הנה הלוג הרלוונטי, יש פה את השמעת הקובץ, ואת הבקשת ניתוק, ואת הסטטוס החוזר
<SIP/207.232.31.138-000000e9>AGI Rx << STREAM FILE /etc/asterisk/test/Ketapuach "" -- <SIP/207.232.31.138-000000e9> Playing '/etc/asterisk/test/Ketapuach.slin' (escape_digits=) (sample_offset 0) (language 'en') > 0x71114c018d50 -- Strict RTP learning complete - Locking on source address 207.232.31.138:16620 <SIP/207.232.31.138-000000e9>AGI Tx >> 200 result=0 endpos=80105 <SIP/207.232.31.138-000000e9>AGI Rx << HANGUP SIP/207.232.31.138-000000e9 <SIP/207.232.31.138-000000e9>AGI Tx >> 200 result=1
איך אוכל לגרום כן לניתוק השיחה?
-
תנסה להגדיר בשלוחה בימות לאיזה שלוחה לעבור בסיום,
יכול להיות שימות שולח אותך בסיום בחזרה לאותה שלוחה
routing_ip_end_goto=/8 -
@ivrtikshoret כתב בניתוק השיחה | asterisk:
יכול להיות שימות שולח אותך בסיום בחזרה לאותה שלוחה
זה אכן הייתה הבעיה, תודה רבה,
הגדרתי בימות המשיחrouting_ip_end_goto=hangup
וזה מתנתק בסיום