Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
voip:c7:asterisk14:start [18.01.2017 20:41. ] djangovoip:c7:asterisk14:start [18.11.2024 06:56. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 7: Zeile 7:
  
 ===== Installation ===== ===== Installation =====
-Die Installation von Asterisk unetr CentOS 7 könnte man an Hand der **[[http://downloads.asterisk.org/pub/telephony/asterisk/|Programm-Sourcen]]** vornehmen. Dazu müsste auf dem VoIP-Server aber unter anderem Entwicklungstools wie "//**gcc & Co**//" installiert werden; was natürlich auf einem Produktivsystem mehr als zweifelhaft ist und aus Sicherheitsüberlegungen heraus tunlichst vermieden werden sollte.+Die Installation von Asterisk unetr CentOS 7 könnte man an Hand der **[[https://downloads.asterisk.org/pub/telephony/asterisk/|Programm-Sourcen]]** vornehmen. Dazu müsste auf dem VoIP-Server aber unter anderem Entwicklungstools wie "//**gcc & Co**//" installiert werden; was natürlich auf einem Produktivsystem mehr als zweifelhaft ist und aus Sicherheitsüberlegungen heraus tunlichst vermieden werden sollte.
  
 ==== Repository ast.tucny.com ==== ==== Repository ast.tucny.com ====
Zeile 34: Zeile 34:
 **[centosplus]**, **[contrib]** erhält die **priority=2**.  **[centosplus]**, **[contrib]** erhält die **priority=2**. 
  
-Den 3rd party repositories, wie z.B. //**[[https://fedoraproject.org/wiki/EPEL|epel]]**// oder //**[[centos:mailserver.guru#priorities_installieren|mailserver.guru]]**// geben wir nun eine Priorität größer-gleich "10", also z.B. **priority=10**.+Den 3rd party repositories, wie z.B. //**[[https://fedoraproject.org/wiki/EPEL|epel]]**// geben wir nun eine Priorität größer-gleich "10", also z.B. **priority=10**.
  
 === ast.tucny.com === === ast.tucny.com ===
Zeile 121: Zeile 121:
 Repo        : asterisk-14/7/x86_64 Repo        : asterisk-14/7/x86_64
 Summary     : The Open Source PBX Summary     : The Open Source PBX
-URL         : http://www.asterisk.org/+URL         : https://www.asterisk.org/
 License     : GPLv2 License     : GPLv2
 Description : Asterisk is a complete PBX in software. It runs on Linux and provides Description : Asterisk is a complete PBX in software. It runs on Linux and provides
Zeile 149: Zeile 149:
 Build Host  : olive.ph.tucny.com Build Host  : olive.ph.tucny.com
 Relocations : (not relocatable) Relocations : (not relocatable)
-URL         : http://www.asterisk.org/+URL         : https://www.asterisk.org/
 Summary     : The Open Source PBX Summary     : The Open Source PBX
 Description : Description :
Zeile 671: Zeile 671:
 Build Host  : olive.ph.tucny.com Build Host  : olive.ph.tucny.com
 Relocations : (not relocatable) Relocations : (not relocatable)
-URL         : http://www.asterisk.org/+URL         : https://www.asterisk.org/
 Summary     : IAX2 channel driver for Asterisk Summary     : IAX2 channel driver for Asterisk
 Description : Description :
Zeile 681: Zeile 681:
 /usr/share/asterisk/firmware/iax</code> /usr/share/asterisk/firmware/iax</code>
  
-=== asterisk-sip === +=== asterisk-pjsip === 
-Für die Anbindung unseres Asterisk-Servers an den Provider nutzen wir das **S**ession **I**nitiation **P**rotocol - **[[https://de.wikipedia.org/wiki/Session_Initiation_Protocol|SIP]]**. Wie installieren also auch hier das passende **RPM**.  +Für die Anbindung unseres Asterisk-Servers an den Provider nutzen wir das **S**ession **I**nitiation **P**rotocol - **[[https://de.wikipedia.org/wiki/Session_Initiation_Protocol|SIP]]**. Statt dem alten chan_sip Modulen benutzen wir unter //**Asterisk 14**// nunmehr die neuen, auf den **[[https://www.pjsip.org/about.htm|PJSIP-Bibliotheken]]** basierenden, SIP-Stack. die wesentlichen Unterschiede bei der Konfiguration sind auf dieser **[[https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip|Seite]]** ausführlich beschrieben.
-   # yum install asterisk-sip+
  
-Was genau diese RPM-Paket in unserern Server mitgebracht hat zeigt uns wie immer der Aufruf des Befehls **rpm** mit der Option **-qil**. +Wie installieren also auch hier das passende **RPM**.  
-   # rpm -qil asterisk-sip+   # yum install asterisk-pjsip
  
-<code>Name        : asterisk-sip+Was genau diese RPM-Paket in unseren Server mitgebracht hat zeigt uns wie immer der Aufruf des Befehls **rpm** mit der Option **-qil**. 
 +   # rpm -qil asterisk-pjsip 
 + 
 +<code>Name        : asterisk-pjsip
 Version     : 14.2.1 Version     : 14.2.1
 Release     : 1.el7.centos Release     : 1.el7.centos
 Architecture: x86_64 Architecture: x86_64
-Install Date: Wed 18 Jan 2017 07:15:08 PM CET+Install Date: Thu 19 Jan 2017 02:21:55 PM CET
 Group       : Applications/Internet Group       : Applications/Internet
-Size        : 871899+Size        : 1554633
 License     : GPLv2 License     : GPLv2
 Signature   : RSA/SHA1, Thu 08 Dec 2016 11:58:06 PM CET, Key ID ccf40e16b9a46fa9 Signature   : RSA/SHA1, Thu 08 Dec 2016 11:58:06 PM CET, Key ID ccf40e16b9a46fa9
Zeile 701: Zeile 703:
 Build Host  : olive.ph.tucny.com Build Host  : olive.ph.tucny.com
 Relocations : (not relocatable) Relocations : (not relocatable)
-URL         : http://www.asterisk.org/ +URL         : https://www.asterisk.org/ 
-Summary     : Legacy SIP channel driver for Asterisk+Summary     : SIP channel based upon the PJSIP library
 Description : Description :
-Legacy SIP channel driver for Asterisk +SIP channel based upon the PJSIP library 
-/etc/asterisk/sip.conf +/etc/asterisk/pjproject.conf 
-/etc/asterisk/sip_notify.conf +/etc/asterisk/pjsip.conf 
-/usr/lib64/asterisk/modules/chan_sip.so</code>+/etc/asterisk/pjsip_notify.conf 
 +/etc/asterisk/pjsip_wizard.conf 
 +/usr/lib64/asterisk/modules/chan_pjsip.so 
 +/usr/lib64/asterisk/modules/func_pjsip_aor.so 
 +/usr/lib64/asterisk/modules/func_pjsip_contact.so 
 +/usr/lib64/asterisk/modules/func_pjsip_endpoint.so 
 +/usr/lib64/asterisk/modules/res_pjproject.so 
 +/usr/lib64/asterisk/modules/res_pjsip.so 
 +/usr/lib64/asterisk/modules/res_pjsip_acl.so 
 +/usr/lib64/asterisk/modules/res_pjsip_authenticator_digest.so 
 +/usr/lib64/asterisk/modules/res_pjsip_caller_id.so 
 +/usr/lib64/asterisk/modules/res_pjsip_config_wizard.so 
 +/usr/lib64/asterisk/modules/res_pjsip_dialog_info_body_generator.so 
 +/usr/lib64/asterisk/modules/res_pjsip_diversion.so 
 +/usr/lib64/asterisk/modules/res_pjsip_dlg_options.so 
 +/usr/lib64/asterisk/modules/res_pjsip_dtmf_info.so 
 +/usr/lib64/asterisk/modules/res_pjsip_empty_info.so 
 +/usr/lib64/asterisk/modules/res_pjsip_endpoint_identifier_anonymous.so 
 +/usr/lib64/asterisk/modules/res_pjsip_endpoint_identifier_ip.so 
 +/usr/lib64/asterisk/modules/res_pjsip_endpoint_identifier_user.so 
 +/usr/lib64/asterisk/modules/res_pjsip_exten_state.so 
 +/usr/lib64/asterisk/modules/res_pjsip_header_funcs.so 
 +/usr/lib64/asterisk/modules/res_pjsip_history.so 
 +/usr/lib64/asterisk/modules/res_pjsip_logger.so 
 +/usr/lib64/asterisk/modules/res_pjsip_messaging.so 
 +/usr/lib64/asterisk/modules/res_pjsip_mwi.so 
 +/usr/lib64/asterisk/modules/res_pjsip_mwi_body_generator.so 
 +/usr/lib64/asterisk/modules/res_pjsip_nat.so 
 +/usr/lib64/asterisk/modules/res_pjsip_notify.so 
 +/usr/lib64/asterisk/modules/res_pjsip_one_touch_record_info.so 
 +/usr/lib64/asterisk/modules/res_pjsip_outbound_authenticator_digest.so 
 +/usr/lib64/asterisk/modules/res_pjsip_outbound_publish.so 
 +/usr/lib64/asterisk/modules/res_pjsip_outbound_registration.so 
 +/usr/lib64/asterisk/modules/res_pjsip_path.so 
 +/usr/lib64/asterisk/modules/res_pjsip_phoneprov_provider.so 
 +/usr/lib64/asterisk/modules/res_pjsip_pidf_body_generator.so 
 +/usr/lib64/asterisk/modules/res_pjsip_pidf_digium_body_supplement.so 
 +/usr/lib64/asterisk/modules/res_pjsip_pidf_eyebeam_body_supplement.so 
 +/usr/lib64/asterisk/modules/res_pjsip_publish_asterisk.so 
 +/usr/lib64/asterisk/modules/res_pjsip_pubsub.so 
 +/usr/lib64/asterisk/modules/res_pjsip_refer.so 
 +/usr/lib64/asterisk/modules/res_pjsip_registrar.so 
 +/usr/lib64/asterisk/modules/res_pjsip_registrar_expire.so 
 +/usr/lib64/asterisk/modules/res_pjsip_rfc3326.so 
 +/usr/lib64/asterisk/modules/res_pjsip_sdp_rtp.so 
 +/usr/lib64/asterisk/modules/res_pjsip_send_to_voicemail.so 
 +/usr/lib64/asterisk/modules/res_pjsip_session.so 
 +/usr/lib64/asterisk/modules/res_pjsip_sips_contact.so 
 +/usr/lib64/asterisk/modules/res_pjsip_t38.so 
 +/usr/lib64/asterisk/modules/res_pjsip_transport_management.so 
 +/usr/lib64/asterisk/modules/res_pjsip_transport_websocket.so 
 +/usr/lib64/asterisk/modules/res_pjsip_xpidf_body_generator.so</code>
  
 ===== Programmstart ===== ===== Programmstart =====
Zeile 1153: Zeile 1206:
  rule family="ipv4" port port="4569" protocol="udp" accept  rule family="ipv4" port port="4569" protocol="udp" accept
 </code> </code>
 +
 +
 +   # firewall-cmd --get-active-zones
 +<code>internal
 +  interfaces: eth1
 +public
 +  interfaces: eth0 eth2</code>
 +
 +
 +   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" port protocol="udp" port="4569" accept"
 +
 +  success
 +
 +   # firewall-cmd --reload
 +
 +  success
 +
 +
 +
 +   # firewall-cmd --zone=public --list-all
 +<code>external
 +  target: default
 +  icmp-block-inversion: no
 +  interfaces: 
 +  sources: 
 +  services: ssh
 +  ports: 
 +  protocols: 
 +  masquerade: yes
 +  forward-ports: 
 +  sourceports: 
 +  icmp-blocks: 
 +  rich rules: 
 +        rule family="ipv4" port port="4569" protocol="udp" accept</code>
 +
 +
 +===== iax2 =====
 +
 +
 +   # asterisk -r
 +<code>Asterisk 14.2.1, Copyright (C) 1999 - 2016, Digium, Inc. and others.
 +Created by Mark Spencer <markster@digium.com>
 +Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
 +This is free software, with components licensed under the GNU General Public
 +License version 2 and other licenses; you are welcome to redistribute it under
 +certain conditions. Type 'core show license' for details.
 +=========================================================================
 +Connected to Asterisk 14.2.1 currently running on vml000177 (pid = 13261)
 +vml000177*CLI></code>
 +  vml000177*CLI> iax2 show peers
 +<code>Name/Username    Host                                           Mask                                      Port           Status      Description                     
 +33/33            10.0.10.122                              (D)  (null)                                    50548          Unmonitored                                 
 +demo/asterisk    216.207.245.47                           (S)  255.255.255.255                           4569           Unmonitored Demo System At Digium           
 +2 iax2 peers [0 online, 0 offline, 2 unmonitored]</code>
 +
 +===== dialplan =====
 +
 +   # asterisk -r
 +<code>Asterisk 14.2.1, Copyright (C) 1999 - 2016, Digium, Inc. and others.
 +Created by Mark Spencer <markster@digium.com>
 +Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
 +This is free software, with components licensed under the GNU General Public
 +License version 2 and other licenses; you are welcome to redistribute it under
 +certain conditions. Type 'core show license' for details.
 +=========================================================================
 +Connected to Asterisk 14.2.1 currently running on vml000177 (pid = 13261)
 +vml000177*CLI></code>
 +
 +  vml000177*CLI> dialplan show 
 +<code>[ Context '__func_periodic_hook_context__' created by 'func_periodic_hook' ]
 +  'beep' (CID match '') =>  1. Answer()                                   [func_periodic_hook]
 +                    2. Playback(beep)                             [func_periodic_hook]
 +  'hook' (CID match '') =>  1. Set(EncodedChannel=${CUT(HOOK_CHANNEL,-,1-2)}) [func_periodic_hook]
 +                    2. Set(GROUP_NAME=${EncodedChannel}${HOOK_ID}) [func_periodic_hook]
 +                    3. Set(GROUP(periodic-hook)=${GROUP_NAME})    [func_periodic_hook]
 +                    4. ExecIf($[${GROUP_COUNT(${GROUP_NAME}@periodic-hook)} > 1]?Hangup()) [func_periodic_hook]
 +                    5. Set(ChannelToSpy=${URIDECODE(${EncodedChannel})}) [func_periodic_hook]
 +                    6. ChanSpy(${ChannelToSpy},qEB)               [func_periodic_hook]
 +
 +[ Context 'parkedcalls' created by 'res_parking/default' ]
 +  '700' =>          1. Park()                                     [res_parking]
 +  '701' =>          1. ParkedCall(default,701)                    [res_parking/default]
 +  '702' =>          1. ParkedCall(default,702)                    [res_parking/default]
 +  '703' =>          1. ParkedCall(default,703)                    [res_parking/default]
 +  '704' =>          1. ParkedCall(default,704)                    [res_parking/default]
 +  '705' =>          1. ParkedCall(default,705)                    [res_parking/default]
 +  '706' =>          1. ParkedCall(default,706)                    [res_parking/default]
 +  '707' =>          1. ParkedCall(default,707)                    [res_parking/default]
 +  '708' =>          1. ParkedCall(default,708)                    [res_parking/default]
 +  '709' =>          1. ParkedCall(default,709)                    [res_parking/default]
 +  '710' =>          1. ParkedCall(default,710)                    [res_parking/default]
 +  '711' =>          1. ParkedCall(default,711)                    [res_parking/default]
 +  '712' =>          1. ParkedCall(default,712)                    [res_parking/default]
 +  '713' =>          1. ParkedCall(default,713)                    [res_parking/default]
 +  '714' =>          1. ParkedCall(default,714)                    [res_parking/default]
 +  '715' =>          1. ParkedCall(default,715)                    [res_parking/default]
 +  '716' =>          1. ParkedCall(default,716)                    [res_parking/default]
 +  '717' =>          1. ParkedCall(default,717)                    [res_parking/default]
 +  '718' =>          1. ParkedCall(default,718)                    [res_parking/default]
 +  '719' =>          1. ParkedCall(default,719)                    [res_parking/default]
 +  '720' =>          1. ParkedCall(default,720)                    [res_parking/default]
 +
 +[ Context 'ani' created by 'pbx_config' ]
 +  '_X.' =>          40000. NoOp(ANI: ${EXTEN})                    [pbx_config]
 +                    40001. Wait(0.25)                             [pbx_config]
 +                    40002. Answer()                               [pbx_config]
 +                    40003. Playback(vm-from)                      [pbx_config]
 +                    40004. SayDigits(${CALLERID(ani)})            [pbx_config]
 +                    40005. Wait(1.25)                             [pbx_config]
 +                    40006. SayDigits(${CALLERID(ani)})            [pbx_config]
 +                    40007. Return()                               [pbx_config]
 +
 +[ Context 'time' created by 'pbx_config' ]
 +  '_X.' =>          30000. NoOp(Time: ${EXTEN} ${timezone})       [pbx_config]
 +                    30001. Wait(0.25)                             [pbx_config]
 +                    30002. Answer()                               [pbx_config]
 +                    30003. Set(FUTURETIME=$[${EPOCH} + 12])       [pbx_config]
 +                    30004. SayUnixTime(${FUTURETIME},Zulu,HNS)    [pbx_config]
 +                    30005. SayPhonetic(z)                         [pbx_config]
 +                    30006. SayUnixTime(${FUTURETIME},${timezone},HNS) [pbx_config]
 +                    30007. Playback(spy-local)                    [pbx_config]
 +                    30008. WaitUntil(${FUTURETIME})               [pbx_config]
 +                    30009. Playback(beep)                         [pbx_config]
 +                    30010. Return()                               [pbx_config]
 +
 +[ Context 'default' created by 'pbx_config' ]
 +  Include =>        'demo'                                        [pbx_config]
 +
 +[ Context 'public' created by 'pbx_config' ]
 +  Include =>        'demo'                                        [pbx_config]
 +
 +[ Context 'page' created by 'pbx_config' ]
 +  '_X.' =>          1. Macro(page,SIP/${EXTEN})                   [pbx_config]
 +
 +[ Context 'demo' created by 'pbx_config' ]
 +  '#' =>            1. Playback(demo-thanks)                      [pbx_config]
 +                    2. Hangup()                                   [pbx_config]
 +  '1000' =>         1. Goto(default,s,1)                          [pbx_config]
 +  '1234' =>         1. Playback(transfer,skip)                    [pbx_config]
 +                    2. Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)})) [pbx_config]
 +                    3. Goto(default,s,1)                          [pbx_config]
 +  '1235' =>         1. Voicemail(1234,u)                          [pbx_config]
 +  '1236' =>         1. Dial(Console/dsp)                          [pbx_config]
 +                    2. Voicemail(1234,b)                          [pbx_config]
 +  '2' =>            1. BackGround(demo-moreinfo)                  [pbx_config]
 +                    2. Goto(s,instruct)                           [pbx_config]
 +  '3' =>            1. Set(CHANNEL(language)=fr)                  [pbx_config]
 +                    2. Goto(s,restart)                            [pbx_config]
 +  '500' =>          1. Playback(demo-abouttotry)                  [pbx_config]
 +                    2. Dial(IAX2/guest@pbx.digium.com/s@default)  [pbx_config]
 +                    3. Playback(demo-nogo)                        [pbx_config]
 +                    4. Goto(s,6)                                  [pbx_config]
 +  '600' =>          1. Playback(demo-echotest)                    [pbx_config]
 +                    2. Echo()                                     [pbx_config]
 +                    3. Playback(demo-echodone)                    [pbx_config]
 +                    4. Goto(s,6)                                  [pbx_config]
 +  '76245' =>        1. Macro(page,SIP/Grandstream1)               [pbx_config]
 +  '7999' =>         1. Set(TIMEOUT(absolute)=60)                  [pbx_config]
 +                    2. Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d) [pbx_config]
 +  '8500' =>         1. VoicemailMain()                            [pbx_config]
 +                    2. Goto(s,6)                                  [pbx_config]
 +  'i' =>            1. Playback(invalid)                          [pbx_config]
 +  's' =>            1. Wait(1)                                    [pbx_config]
 +                    2. Answer()                                   [pbx_config]
 +                    3. Set(TIMEOUT(digit)=5)                      [pbx_config]
 +                    4. Set(TIMEOUT(response)=10)                  [pbx_config]
 +     [restart]      5. BackGround(demo-congrats)                  [pbx_config]
 +     [instruct]     6. BackGround(demo-instruct)                  [pbx_config]
 +                    7. WaitExten()                                [pbx_config]
 +  't' =>            1. Goto(#,1)                                  [pbx_config]
 +  '_7XXX' =>        1. Macro(page,SIP/${EXTEN})                   [pbx_config]
 +  Include =>        'stdexten'                                    [pbx_config]
 +
 +[ Context 'macro-page' created by 'pbx_config' ]
 +  's' =>            1. ChanIsAvail(${ARG1},s)                     [pbx_config]
 +                    2. GoToIf($[${AVAILSTATUS} = "1"]?autoanswer:fail) [pbx_config]
 +     [autoanswer]   3. Set(_ALERT_INFO="RA"                     [pbx_config]
 +                    4. SIPAddHeader(Call-Info: Answer-After=0)    [pbx_config]
 +                    5. NoOp()                                     [pbx_config]
 +                    6. Dial(${ARG1})                              [pbx_config]
 +     [fail]         7. Hangup()                                   [pbx_config]
 +
 +[ Context 'stdPrivacyexten' created by 'pbx_config' ]
 +  'a' =>            1. VoicemailMain(${mbx})                      [pbx_config]
 +                    2. Return()                                   [pbx_config]
 +  'stdexten-BUSY' => 1. Voicemail(${mbx},b)                        [pbx_config]
 +                    2. NoOp(Finish stdPrivacyexten BUSY)          [pbx_config]
 +                    3. Return()                                   [pbx_config]
 +  'stdexten-DONTCALL' => 1. Goto(${dontcntx},s,1)                      [pbx_config]
 +  'stdexten-NOANSWER' => 1. Voicemail(${mbx},u)                        [pbx_config]
 +                    2. NoOp(Finish stdPrivacyexten NOANSWER)      [pbx_config]
 +                    3. Return()                                   [pbx_config]
 +  'stdexten-TORTURE' => 1. Goto(${tortcntx},s,1)                      [pbx_config]
 +  '_stde[x]te[n]-.' => 1. Goto(stdexten-NOANSWER,1)                  [pbx_config]
 +  '_X.' =>          60000. NoOp(Start stdPrivacyexten)            [pbx_config]
 +                    60001. Set(LOCAL(ext)=${ARG1})                [pbx_config]
 +                    60002. Set(LOCAL(dev)=${ARG2})                [pbx_config]
 +                    60003. Set(LOCAL(dontcntx)=${ARG3})           [pbx_config]
 +                    60004. Set(LOCAL(tortcntx)=${ARG4})           [pbx_config]
 +                    60005. Set(LOCAL(cntx)=${ARG5})               [pbx_config]
 +                    60006. Set(LOCAL(mbx)="${ext}"$["${cntx}" ? "@${cntx}" :: ""]) [pbx_config]
 +                    60007. Dial(${dev},20,p)                      [pbx_config]
 +                    60008. Goto(stdexten-${DIALSTATUS},1)         [pbx_config]
 +
 +[ Context 'stdexten' created by 'pbx_config' ]
 +  'a' =>            1. VoicemailMain(${mbx})                      [pbx_config]
 +                    2. Return()                                   [pbx_config]
 +  'stdexten-BUSY' => 1. Voicemail(${mbx},b)                        [pbx_config]
 +                    2. Return()                                   [pbx_config]
 +  'stdexten-NOANSWER' => 1. Voicemail(${mbx},u)                        [pbx_config]
 +                    2. Return()                                   [pbx_config]
 +  '_stde[x]te[n]-.' => 1. Goto(stdexten-NOANSWER,1)                  [pbx_config]
 +  '_X.' =>          50000. NoOp(Start stdexten)                   [pbx_config]
 +                    50001. Set(LOCAL(ext)=${EXTEN})               [pbx_config]
 +                    50002. Set(LOCAL(dev)=${ARG1})                [pbx_config]
 +                    50003. Set(LOCAL(cntx)=${ARG2})               [pbx_config]
 +                    50004. Set(LOCAL(mbx)=${ext}${IF($[!${ISNULL(${cntx})}]?@${cntx})}) [pbx_config]
 +                    50005. Dial(${dev},20)                        [pbx_config]
 +                    50006. Goto(stdexten-${DIALSTATUS},1)         [pbx_config]
 +
 +[ Context 'macro-trunkdial' created by 'pbx_config' ]
 +  's' =>            1. Dial(${ARG1})                              [pbx_config]
 +                    2. Goto(s-${DIALSTATUS},1)                    [pbx_config]
 +  's-BUSY' =>       1. Hangup()                                   [pbx_config]
 +  's-NOANSWER' =>   1. Hangup()                                   [pbx_config]
 +  '_s-.' =>         1. NoOp()                                     [pbx_config]
 +
 +[ Context 'outbound-freenum2' created by 'pbx_config' ]
 +  'fn-BUSY' =>      1. Busy()                                     [pbx_config]
 +  '_f[n]-.' =>      1. NoOp(ISN: ${DIALSTATUS})                   [pbx_config]
 +                    2. Congestion()                               [pbx_config]
 +  '_X!' =>          1. Verbose(2,Performing ISN lookup for ${EXTEN}) [pbx_config]
 +                    2. Set(SUFFIX=${CUT(EXTEN,*,2-)})             [pbx_config]
 +                    3. GotoIf($["${FILTER(0-9,${SUFFIX})}" != "${SUFFIX}"]?fn-CONGESTION,1) [pbx_config]
 +                    4. Set(TIMEOUT(absolute)=10800)               [pbx_config]
 +                    5. Set(isnresult=${ENUMLOOKUP(${EXTEN},sip,,1,freenum.org)}) [pbx_config]
 +                    6. GotoIf($["${isnresult}" != ""]?from)       [pbx_config]
 +                    7. Set(DIALSTATUS=CONGESTION)                 [pbx_config]
 +                    8. Goto(fn-CONGESTION,1)                      [pbx_config]
 +     [from]         9. Set(__SIPFROMUSER=${CALLERID(num)})        [pbx_config]
 +                    10. GotoIf($["${GLOBAL(FREENUMDOMAIN)}" = ""]?dial) [pbx_config]
 +                    11. Set(__SIPFROMDOMAIN=${GLOBAL(FREENUMDOMAIN)}) [pbx_config]
 +     [dial]         12. Dial(SIP/${isnresult},40)                 [pbx_config]
 +                    13. Goto(fn-${DIALSTATUS},1)                  [pbx_config]
 +
 +[ Context 'outbound-freenum' created by 'pbx_config' ]
 +  '_X*X!' =>        1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +  '_XX*X!' =>       1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +  '_XXX*X!' =>      1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +  '_XXXX*X!' =>     1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +  '_XXXXX*X!' =>    1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +  '_XXXXXX*X!' =>   1. Goto(outbound-freenum2,${EXTEN},1)         [pbx_config]
 +
 +[ Context 'local' created by 'pbx_config' ]
 +  Include =>        'default'                                     [pbx_config]
 +  Include =>        'trunklocal'                                  [pbx_config]
 +  Include =>        'iaxtel700'                                   [pbx_config]
 +  Include =>        'trunktollfree'                               [pbx_config]
 +  Include =>        'iaxprovider'                                 [pbx_config]
 +  Include =>        'parkedcalls'                                 [pbx_config]
 +  Ignore pattern => '9'                                           [pbx_config]
 +
 +[ Context 'longdistance' created by 'pbx_config' ]
 +  Include =>        'local'                                       [pbx_config]
 +  Include =>        'trunkld'                                     [pbx_config]
 +  Ignore pattern => '9'                                           [pbx_config]
 +
 +[ Context 'international' created by 'pbx_config' ]
 +  Include =>        'longdistance'                                [pbx_config]
 +  Include =>        'trunkint'                                    [pbx_config]
 +  Ignore pattern => '9'                                           [pbx_config]
 +
 +[ Context 'trunktollfree' created by 'pbx_config' ]
 +  '_91800NXXXXXX' => 1. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +  '_91866NXXXXXX' => 1. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +  '_91877NXXXXXX' => 1. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +  '_91888NXXXXXX' => 1. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +
 +[ Context 'trunklocal' created by 'pbx_config' ]
 +  '_9NXXXXXX' =>    1. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +
 +[ Context 'trunkld' created by 'pbx_config' ]
 +  '_91NXXNXXXXXX' => 1. Macro(dundi-e164,${EXTEN:1})               [pbx_config]
 +                    2. Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [pbx_config]
 +
 +[ Context 'trunkint' created by 'pbx_config' ]
 +  '_9011.' =>       1. Macro(dundi-e164,${EXTEN:4})               [pbx_config]
 +                    2. Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})}) [pbx_config]
 +
 +[ Context 'iaxprovider' created by 'pbx_config' ]
 +
 +[ Context 'iaxtel700' created by 'pbx_config' ]
 +  '_91700XXXXXXX' => 1. Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel) [pbx_config]
 +
 +[ Context 'macro-dundi-e164' created by 'pbx_config' ]
 +  's' =>            1. Goto(${ARG1},1)                            [pbx_config]
 +  Include =>        'dundi-e164-lookup'                           [pbx_config]
 +
 +[ Context 'dundi-e164-lookup' created by 'pbx_config' ]
 +  Include =>        'dundi-e164-local'                            [pbx_config]
 +  Include =>        'dundi-e164-switch'                           [pbx_config]
 +
 +[ Context 'dundi-e164-switch' created by 'pbx_config' ]
 +  Alt. Switch =>    'DUNDi/e164'                                  [pbx_config]
 +
 +[ Context 'dundi-e164-local' created by 'pbx_config' ]
 +  Include =>        'dundi-e164-canonical'                        [pbx_config]
 +  Include =>        'dundi-e164-customers'                        [pbx_config]
 +  Include =>        'dundi-e164-via-pstn'                         [pbx_config]
 +
 +[ Context 'dundi-e164-via-pstn' created by 'pbx_config' ]
 +
 +[ Context 'dundi-e164-customers' created by 'pbx_config' ]
 +
 +[ Context 'dundi-e164-canonical' created by 'pbx_config' ]
 +
 +-= 77 extensions (164 priorities) in 30 contexts. =-</code>
 +
 +==== konsole verbose output ====
 +
 +  vml000177*CLI> core set verbose 5
 +
 +  Console verbose was OFF and is now 5.
 +
 +
 +==== echotest ====
 +
 +<code>vml000177*CLI> 
 +    -- Accepting AUTHENTICATED call from 10.0.10.122:50548:
 +    --        > requested format = gsm,
 +    --        > requested prefs = (),
 +    --        > actual format = gsm,
 +    --        > host prefs = (gsm|ilbc|speex|g729|g723),
 +    --        > priority = mine
 +    -- Executing [600@default:1] Playback("IAX2/33-15362", "demo-echotest") in new stack
 +    -- <IAX2/33-15362> Playing 'demo-echotest.gsm' (language 'de')
 +    -- Executing [600@default:2] Echo("IAX2/33-15362", "") in new stack
 +    -- Executing [600@default:3] Playback("IAX2/33-15362", "demo-echodone") in new stack
 +    -- <IAX2/33-15362> Playing 'demo-echodone.gsm' (language 'de')
 +    -- Executing [600@default:4] Goto("IAX2/33-15362", "s,6") in new stack
 +    -- Goto (default,s,6)
 +    -- Executing [s@default:6] BackGround("IAX2/33-15362", "demo-instruct") in new stack
 +    -- <IAX2/33-15362> Playing 'demo-instruct.gsm' (language 'de')
 +    -- Executing [2@default:1] BackGround("IAX2/33-15362", "demo-moreinfo") in new stack
 +    -- <IAX2/33-15362> Playing 'demo-moreinfo.gsm' (language 'de')
 +  == Spawn extension (default, 2, 1) exited non-zero on 'IAX2/33-15362'
 +    -- Hungup 'IAX2/33-15362'</code>
 +
 +==== demo ====
 +
 +<code>vml000177*CLI> 
 +    -- Accepting AUTHENTICATED call from 10.0.10.122:50548:
 +    --        > requested format = gsm,
 +    --        > requested prefs = (),
 +    --        > actual format = gsm,
 +    --        > host prefs = (gsm|ilbc|speex|g729|g723),
 +    --        > priority = mine
 +    -- Executing [500@default:1] Playback("IAX2/33-9804", "demo-abouttotry") in new stack
 +    -- <IAX2/33-9804> Playing 'demo-abouttotry.gsm' (language 'de')
 +    -- Executing [500@default:2] Dial("IAX2/33-9804", "IAX2/guest@pbx.digium.com/s@default") in new stack
 +    -- Called IAX2/guest@pbx.digium.com/s@default
 +[Jan 18 22:17:14] NOTICE[13560]: chan_iax2.c:4735 __auto_congest: Auto-congesting call due to slow response
 +    -- IAX2/216.207.245.8:4569-4356 is circuit-busy
 +    -- Hungup 'IAX2/216.207.245.8:4569-4356'
 +  == Everyone is busy/congested at this time (1:0/1/0)
 +    -- Executing [500@default:3] Playback("IAX2/33-9804", "demo-nogo") in new stack
 +    -- <IAX2/33-9804> Playing 'demo-nogo.gsm' (language 'de')
 +    -- Hungup 'IAX2/33-9804'</code>
 +
 +==== Beispiele ====
 +=== dial ===
 +https://wiki.asterisk.org/wiki/display/AST/Asterisk+14+Application_Dial
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; interne Erreichbarkeit der Nebenstellen 11-99 untereinander herstellen
 +exten => _XX,1,NoOp(interner Teilnehmer mit der Rufnummer ${CALLERID(num)} ruft internen (PJ)SIP-Tln. ${EXTEN})
 +exten => _XX,n,Dial(PJSIP/${EXTEN},55,TtrWw)
 +</code>
 +
 +   # asterisk -vvvvr
 +<code>    -- Accepting AUTHENTICATED call from 88.217.123.90:33439:
 +    --        > requested format = gsm,
 +    --        > requested prefs = (),
 +    --        > actual format = gsm,
 +    --        > host prefs = (gsm|ilbc|speex|g729|g723),
 +    --        > priority = mine
 +    -- Executing [36@default:1] NoOp("IAX2/33-9632", "interner Teilnehmer mit der Rufnummer 33 ruft internen (PJ)SIP-Tln. 36") in new stack
 +    -- Executing [36@default:2] Dial("IAX2/33-9632", "PJSIP/36,55,TtrWw") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-0000001b is ringing
 +  == Spawn extension (default, 36, 2) exited non-zero on 'IAX2/33-9632'
 +    -- Hungup 'IAX2/33-9632'
 +</code>
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; Anwendungspeispiele bei ankommenden Amtsgesprächen
 +
 +; BEISPIEL 1:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 auf der internen Nst. 36 signalisieren
 +;
 +exten => 08121883175,1,Verbose(### Anruf von ${CALLERID(num)} im Kontext "telekom_in" ###)
 +exten => 08121883175,n,Dial(PJSIP/36,60)
 +exten => 08121883175,n,Hangup
 +</code>
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-0000001c", "### Anruf von +4917645534406 im Kontext "telekom_in" ###") in new stack
 +### Anruf von +4917645534406 im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-0000001c", "PJSIP/36,60") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-0000001d is ringing
 +  == Spawn extension (telekom_in, 08121883175, 2) exited non-zero on 'PJSIP/883172_in-0000001c'
 +</code>
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; BEISPIEL 2:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 auf der internen Nst. 36 signalisieren und
 +;            bei nicht erreichen der Nebenstelle bzw. bei unbeantwortetem Anruf Weiterleitung zur Voicemail
 +;
 +exten => 08121883175,1,Verbose(### Anruf von ${CALLERID(num)} im Kontext "telekom_in" ###)
 +exten => 08121883175,n,Dial(PJSIP/36,60)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup</code>
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-0000001e", "### Anruf von +4917645534406 im Kontext "telekom_in" ###") in new stack
 +### Anruf von +4917645534406 im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-0000001e", "PJSIP/36,60") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-0000001f is ringing
 +    -- Nobody picked up in 60000 ms
 +    -- Executing [08121883175@telekom_in:3] Wait("PJSIP/883172_in-0000001e", "1") in new stack
 +    -- Executing [08121883175@telekom_in:4] VoiceMail("PJSIP/883172_in-0000001e", "36,u") in new stack
 +    -- <PJSIP/883172_in-0000001e> Playing 'vm-theperson.alaw' (language 'de')
 +       > 0x7f647c01e910 -- Probation passed - setting RTP source address to 217.0.7.6:58666
 +    -- <PJSIP/883172_in-0000001e> Playing 'digits/3.alaw' (language 'de')
 +    -- <PJSIP/883172_in-0000001e> Playing 'digits/6.alaw' (language 'de')
 +    -- <PJSIP/883172_in-0000001e> Playing 'vm-isunavail.alaw' (language 'de')
 +    -- <PJSIP/883172_in-0000001e> Playing 'vm-intro.alaw' (language 'de')
 +    -- <PJSIP/883172_in-0000001e> Playing 'beep.alaw' (language 'de')
 +    -- Recording the message
 +    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/36/tmp/QkCtOM format: wav, 0x7f648c00c0d8
 +    -- User ended message by pressing #
 +    -- <PJSIP/883172_in-0000001e> Playing 'auth-thankyou.alaw' (language 'de')
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +    -- Executing [08121883175@telekom_in:5] Hangup("PJSIP/883172_in-0000001e", "") in new stack
 +  == Spawn extension (telekom_in, 08121883175, 5) exited non-zero on 'PJSIP/883172_in-0000001e'</code>
 +
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 3:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 auf der internen Nst. 36 signalisieren und
 +;            bei nicht erreichen der Nebenstelle bzw. bei unbeantwortetem Anruf Weiterleitung zum Mobiltelefon
 +;
 +exten => 08121883175,1,Verbose(### Anruf von ${CALLERID(num)} im Kontext "telekom_in" ###)
 +exten => 08121883175,n,Dial(PJSIP/36,10)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,Dial(PJSIP/883176_out/sip:017645534406@tel.t-online.de,20,rWw)
 +exten => 08121883175,n,Hangup
 +; ---------------------------------------------------------------------------------------------------------------------</code>
 +
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000000", "### Anruf von anonymous im Kontext "telekom_in" ###") in new stack
 +### Anruf von anonymous im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000000", "PJSIP/36,10") in new stack
 +    -- Called PJSIP/36
 +  == Spawn extension (telekom_in, 08121883175, 2) exited non-zero on 'PJSIP/883172_in-00000000'
 +    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000002", "### Anruf von anonymous im Kontext "telekom_in" ###") in new stack
 +### Anruf von anonymous im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000002", "PJSIP/36,10") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-00000003 is ringing
 +    -- Nobody picked up in 10000 ms
 +    -- Executing [08121883175@telekom_in:3] Wait("PJSIP/883172_in-00000002", "1") in new stack
 +    -- Executing [08121883175@telekom_in:4] Dial("PJSIP/883172_in-00000002", "PJSIP/883176_out/sip:017645534406@tel.t-online.de,20,rWw") in new stack
 +    -- Called PJSIP/883176_out/sip:017645534406@tel.t-online.de
 +    -- PJSIP/883176_out-00000004 is making progress passing it to PJSIP/883172_in-00000002
 +    -- PJSIP/883176_out-00000004 is ringing
 +    -- PJSIP/883176_out-00000004 answered PJSIP/883172_in-00000002
 +    -- Channel PJSIP/883176_out-00000004 joined 'simple_bridge' basic-bridge <19dd0b6d-7cc4-4e8b-850a-e932484bfd20>
 +    -- Channel PJSIP/883172_in-00000002 joined 'simple_bridge' basic-bridge <19dd0b6d-7cc4-4e8b-850a-e932484bfd20>
 +       > Bridge 19dd0b6d-7cc4-4e8b-850a-e932484bfd20: switching from simple_bridge technology to native_rtp
 +       > Remotely bridged 'PJSIP/883172_in-00000002' and 'PJSIP/883176_out-00000004' - media will flow directly between them
 +       > Remotely bridged 'PJSIP/883172_in-00000002' and 'PJSIP/883176_out-00000004' - media will flow directly between them
 +    -- Channel PJSIP/883176_out-00000004 left 'native_rtp' basic-bridge <19dd0b6d-7cc4-4e8b-850a-e932484bfd20>
 +    -- Channel PJSIP/883172_in-00000002 left 'native_rtp' basic-bridge <19dd0b6d-7cc4-4e8b-850a-e932484bfd20>
 +  == Spawn extension (telekom_in, 08121883175, 4) exited non-zero on 'PJSIP/883172_in-00000002'
 +</code>
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 4:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 auf der internen Nst. 36 und zeitgleich
 +;            auf dem Mobiltelefon signalisieren. Anschließend bei nicht erreichen der Nebenstelle bzw. bei 
 +;            unbeantwortetem Anruf Weiterleitung zur Voicemailbox. Leistungsmerkmal "twinning"
 +;
 +exten => 08121883175,1,Verbose(### Anruf von ${CALLERID(num)} im Kontext "telekom_in" ###)
 +exten => 08121883175,n,Dial(PJSIP/36&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +; -----------------------------------------------------------------------------------------------------------------------
 +</code>
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000000", "### Anruf von anonymous im Kontext "telekom_in" ###") in new stack
 +### Anruf von anonymous im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000000", "PJSIP/36&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw") in new stack
 +    -- Called PJSIP/36
 +    -- Called PJSIP/883176_out/sip:017645534406@tel.t-online.de
 +    -- PJSIP/36-00000001 connected line has changed. Saving it until answer for PJSIP/883172_in-00000000
 +    -- PJSIP/883176_out-00000002 connected line has changed. Saving it until answer for PJSIP/883172_in-00000000
 +    -- PJSIP/36-00000001 is ringing
 +    -- PJSIP/883176_out-00000002 is making progress passing it to PJSIP/883172_in-00000000
 +    -- PJSIP/883176_out-00000002 is ringing
 +    -- Nobody picked up in 10000 ms
 +    -- Executing [08121883175@telekom_in:3] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:4] VoiceMail("PJSIP/883172_in-00000000", "36,u") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-theperson.alaw' (language 'de')
 +       > 0x7f47f0023ce0 -- Probation passed - setting RTP source address to 217.0.4.196:12838
 +    -- <PJSIP/883172_in-00000000> Playing 'digits/3.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'digits/6.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-isunavail.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-intro.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'beep.alaw' (language 'de')
 +    -- Recording the message
 +    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/36/tmp/ObhJK5 format: wav, 0x7f47f4008488
 +    -- User hung up
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Spawn extension (telekom_in, 08121883175, 4) exited non-zero on 'PJSIP/883172_in-00000000'</code>
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 5:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 nur dann auf der internen Nst. 36
 +;            signalisieren, wenn der Anruf _NICHT_ vom Anschluss +49892165... kommt. Anrufer dieses dieser Anschlusses
 +;            werden zur Abwimmelansage "... dieser Anschluss ist vorübergehend nicht erreichbar ..." weitergeleitet.
 +;            Alle anderen Anrufer werden zur Nst. 36 durchgestellt; bzw. an ie Voicemail weitergeleitet
 +exten => 08121883175/_+49892165.,1,NoOp(Externanrufer-Gruppe ${CALLERID(num)} ist geblacklistet und wird daher auf die Voicemail geleitet!)
 +exten => 08121883175/_+49892165.,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175/_+49892165.,n,wait(1)
 +exten => 08121883175/_+49892165.,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175/_+49892165.,n,wait(1)
 +exten => 08121883175/_+49892165.,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175/_+49892165.,n,wait(1)
 +exten => 08121883175/_+49892165.,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175/_+49892165.,n,wait(1)
 +exten => 08121883175/_+49892165.,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175/_+49892165.,n,Hangup
 +exten => 08121883175,1,NoOp(Externanrufer ${CALLERID(num)} hat _keinen_ Sperreintrag und wird an den Nst. 36 (snom 360))
 +exten => 08121883175,n,Dial(PJSIP/36,20,rWw)
 +exten => 08121883175,n,Wait(1)  
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +; -----------------------------------------------------------------------------------------------------------------------
 +</code>
 +
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-00000000", "Externanrufer-Gruppe +49892162407 ist geblacklistet und wird daher auf die Voicemail geleitet!") in new stack
 +    -- Executing [08121883175@telekom_in:2] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +       > 0x7f9e7803f350 -- Probation passed - setting RTP source address to 217.0.4.230:13512
 +    -- Executing [08121883175@telekom_in:3] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:4] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:5] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:6] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:7] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:8] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:9] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:10] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:11] Hangup("PJSIP/883172_in-00000000", "") in new stack
 +  == Spawn extension (telekom_in, 08121883175, 11) exited non-zero on 'PJSIP/883172_in-00000000'
 +</code>
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-00000001", "Externanrufer anonymous hat _keinen_ Sperreintrag und wird an den Nst. 36 (snom 360)") in new stack
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000001", "PJSIP/36,20,rWw") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-00000002 is ringing
 +    -- Nobody picked up in 20000 ms
 +    -- Executing [08121883175@telekom_in:3] Wait("PJSIP/883172_in-00000001", "1") in new stack
 +    -- Executing [08121883175@telekom_in:4] VoiceMail("PJSIP/883172_in-00000001", "36,u") in new stack
 +    -- <PJSIP/883172_in-00000001> Playing 'vm-theperson.alaw' (language 'de')
 +       > 0x7f9e5800abb0 -- Probation passed - setting RTP source address to 217.0.7.70:28670
 +    -- <PJSIP/883172_in-00000001> Playing 'digits/3.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000001> Playing 'digits/6.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000001> Playing 'vm-isunavail.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000001> Playing 'vm-intro.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000001> Playing 'beep.alaw' (language 'de')
 +    -- Recording the message
 +    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/36/tmp/7SpfZs format: wav, 0x7f9e6c3f6508
 +    -- User hung up
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Spawn extension (telekom_in, 08121883175, 4) exited non-zero on 'PJSIP/883172_in-00000001'</code>
 +
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 6:
 +;            ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 nur dann auf der internen Nst. 36
 +;            signalisieren, wenn der Anruf _NICHT_ die Rufnummer +498921652407 überträgt. Dieser Anrufer wird sofort
 +;            an die Voicemail weitergeleitet. Alle anderen Anrufer werden zur Nst. 36 durchgestellt und bei nicht 
 +;            erreichen der Nebenstelle bzw. bei unbeantwortetem Anruf rfolgt eine Weiterleitung zur Voicemailbox.
 +;
 +exten => 08121883175,1,Verbose(### Anruf von ${CALLERID(num)} im Kontext "telekom_in" ###)
 +exten => 08121883175,n,GotoIf($["${CALLERID(num)}" = "+498921652407"]?10:20)
 +exten => 08121883175,10,NoOp(Externanrufer ${CALLERID(num)} ist geblacklistet und wird daher auf die Voicemail geleitet!)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +exten => 08121883175,20,NoOp(Externanrufer ${CALLERID(num)} hat keinen Sperreintrag und wird an Nst. 36 signalisiert!)
 +exten => 08121883175,n,Dial(PJSIP/36,20,rWw)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +; -----------------------------------------------------------------------------------------------------------------------
 +</code>
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000000", "### Anruf von +498921652407 im Kontext "telekom_in" ###") in new stack
 +### Anruf von +498921652407 im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] GotoIf("PJSIP/883172_in-00000000", "1?10:20") in new stack
 +    -- Goto (telekom_in,08121883175,10)
 +    -- Executing [08121883175@telekom_in:10] NoOp("PJSIP/883172_in-00000000", "Externanrufer +498921652407 ist geblacklistet und wird daher auf die Voicemail geleitet!") in new stack
 +    -- Executing [08121883175@telekom_in:11] VoiceMail("PJSIP/883172_in-00000000", "36,u") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-theperson.alaw' (language 'de')
 +       > 0x7fd2d0042a80 -- Probation passed - setting RTP source address to 217.0.7.4:10530
 +    -- <PJSIP/883172_in-00000000> Playing 'digits/3.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'digits/6.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-isunavail.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'vm-intro.alaw' (language 'de')
 +    -- <PJSIP/883172_in-00000000> Playing 'beep.alaw' (language 'de')
 +    -- Recording the message
 +    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/36/tmp/jAEk5n format: wav, 0x7fd2e0008058
 +    -- User hung up
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Parsing '/var/spool/asterisk/voicemail/default/36/INBOX/msg0000.txt': Found
 +  == Spawn extension (telekom_in, 08121883175, 11) exited non-zero on 'PJSIP/883172_in-00000000'</code>
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000001", "### Anruf von anonymous im Kontext "telekom_in" ###") in new stack
 +### Anruf von anonymous im Kontext telekom_in ###
 +    -- Executing [08121883175@telekom_in:2] GotoIf("PJSIP/883172_in-00000001", "0?10:20") in new stack
 +    -- Goto (telekom_in,08121883175,20)
 +    -- Executing [08121883175@telekom_in:20] NoOp("PJSIP/883172_in-00000001", "Externanrufer anonymous hat keinen Sperreintrag und wird an Nst. 36 signalisiert!") in new stack
 +    -- Executing [08121883175@telekom_in:21] Dial("PJSIP/883172_in-00000001", "PJSIP/36,20,rWw") in new stack
 +    -- Called PJSIP/36
 +    -- PJSIP/36-00000002 is ringing
 +  == Spawn extension (telekom_in, 08121883175, 21) exited non-zero on 'PJSIP/883172_in-00000001'</code>
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 7:
 +;            alle ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 werden in der 1st-level Supportgruppe,
 +;            d.h. an den Nebenstellen 33 und 36 signalisiert. Ruf hingegen unser VIP-Kunde mit der Rufnummer 08931408448
 +;            wird dieser Anrufer sofort zum 2nd-level Support (Nst. 31) durchgestellt bzw. bei nicht erreichen zum 
 +;            Mobiltelefon durchgestellt.  
 +;            
 +exten => 08121883175/_+498931408448,1,Verbose(### Anruf von VIP-Kunden mit der Rufnummer ${CALLERID(num)} im Kontext "telekom_in". VIP-Behandlung veranlassen! ###)
 +exten => 08121883175/_+498931408448,n,Dial(PJSIP/31&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw)
 +exten => 08121883175/_+498931408448,n,Hangup
 +exten => 08121883175,1,NoOp(Externanrufer mit der Rufnummer ${CALLERID(num)} ist 08/15-Kunde und wird im 1st-level Support abgeworfen.)
 +exten => 08121883175,n,Dial(PJSIP/36&IAX2/33,15)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +; -----------------------------------------------------------------------------------------------------------------------</code>
 +
 +<code>    -- Executing [08121883175@telekom_in:1] Verbose("PJSIP/883172_in-00000003", "### Anruf von VIP-Kunden mit der Rufnummer +4989216750916 im Kontext "telekom_in". VIP-Behandlung veranlassen! ###") in new stack
 +### Anruf von VIP-Kunden mit der Rufnummer +4989216750916 im Kontext telekom_in. VIP-Behandlung veranlassen! ###
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000003", "PJSIP/31&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw") in new stack
 +    -- Called PJSIP/31
 +    -- Called PJSIP/883176_out/sip:017645534406@tel.t-online.de
 +    -- PJSIP/31-00000004 connected line has changed. Saving it until answer for PJSIP/883172_in-00000003
 +    -- PJSIP/883176_out-00000005 connected line has changed. Saving it until answer for PJSIP/883172_in-00000003
 +    -- PJSIP/31-00000004 is ringing
 +    -- PJSIP/883176_out-00000005 is making progress passing it to PJSIP/883172_in-00000003
 +    -- PJSIP/883176_out-00000005 is ringing
 +  == Spawn extension (telekom_in, 08121883175, 2) exited non-zero on 'PJSIP/883172_in-00000003'
 +</code>
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-00000000", "Externanrufer mit der Rufnummer anonymous ist 08/15-Kunde und wird im 1st-level Support abgeworfen.") in new stack
 +    -- Executing [08121883175@telekom_in:2] Dial("PJSIP/883172_in-00000000", "PJSIP/36&IAX2/33,15") in new stack
 +[Jan 30 15:31:12] WARNING[17010][C-00000001]: app_dial.c:2530 dial_exec_full: Unable to create channel of type 'IAX2' (cause 20 - Subscriber absent)
 +    -- Called PJSIP/36
 +    -- PJSIP/36-00000001 is ringing
 +  == Spawn extension (telekom_in, 08121883175, 2) exited non-zero on 'PJSIP/883172_in-00000000'</code>
 +
 +
 +
 +   # vim /etc/asterisk/extensions.conf
 +<code>; -----------------------------------------------------------------------------------------------------------------------
 +; BEISPIEL 8:
 +;            alle ankommende Anrufe vom Provider Telekom für Rufnummer 08121883175 werden gegen die black- und white-
 +;            listing Datenbank geprüft und gesondert behandelt: 
 +;              - Anrufer die keine Nummer übertragen werden "nur" an der int. Nst 36 signalisiert, ohne Weiterleitung 
 +;                zum Händie und/oder Voicemail
 +;              - Anrufer mit einem Whitelisting-Eintrag in der AstDB (Asterisk-Datenbank) werden sowohl an der internen 
 +;                Nebenstelle 36 wie auch am Händie mit der Rufnummer 0176/45534406 signalisiert. Wird der Anrufer nicht 
 +;                binnen 20 Sekunden beantwortet, erhält der Anrufer die Möglichkeit zum Hinterlassen einer Nachricht 
 +;                auf der Voicemailbox von der Nst. 36
 +;              - Anrufer, die einen blacklisting Eintrag haben, werden direkt zur Abwimmelansage der Nst. 36 geleitet 
 +;                und anschließend die Verbindung gekappt, ohne dass der Anrufer eine Nachricht hinterlassen kann.
 +;
 +exten => 08121883175,1,NoOp(Anrufer übertrug die Rufnummer ${CALLERID(num)})
 +exten => 08121883175,n,Set(access=${DB(36/${CALLERID(num)})})
 +
 +exten => 08121883175,n,GotoIf($[ "${access}" = "" ]?ohne:testing)
 +exten => 08121883175,n(testing),GotoIf($[ "${access}" = "wl" ]?whitelisted:blacklisted)
 +exten => 08121883175,n(whitelisted),NoOp(der Anrufer ist gewhitelisted, der Anrufer wird zur Nebenstelle 36 und zum Mobiltelefon durchgestellt)
 +exten => 08121883175,n,Dial(PJSIP/36&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw)
 +exten => 08121883175,n,Wait(1)
 +exten => 08121883175,n,VoiceMail(36,u)
 +exten => 08121883175,n,Hangup
 +exten => 08121883175,n(blacklisted),NoOp(der Anrufer ist geblacklisted und wird daher zur "Abwimmel"-Voicemailbox abgeworfen)
 +exten => 08121883175,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175,n,wait(1)
 +exten => 08121883175,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175,n,wait(1)
 +exten => 08121883175,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175,n,wait(1)
 +exten => 08121883175,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175,n,wait(1)
 +exten => 08121883175,n,Playback(/var/spool/asterisk/voicemail/default/31/unerreichbar)
 +exten => 08121883175,n,Hangup
 +exten => 08121883175,n(ohne),NoOp(der Anrufer überträgt keine Nummer, und ist weder geblack- noch gewhitelisted)
 +exten => 08121883175,n,Dial(PJSIP/31,60)
 +exten => 08121883175,n,Hangup
 +; -----------------------------------------------------------------------------------------------------------------------
 +</code>
 +
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-0000000b", "Anrufer übertrug die Rufnummer +4917645534406") in new stack
 +    -- Executing [08121883175@telekom_in:2] Set("PJSIP/883172_in-0000000b", "access=wl") in new stack
 +    -- Executing [08121883175@telekom_in:3] GotoIf("PJSIP/883172_in-0000000b", "0?ohne:testing") in new stack
 +    -- Goto (telekom_in,08121883175,4)
 +    -- Executing [08121883175@telekom_in:4] GotoIf("PJSIP/883172_in-0000000b", "1?whitelisted:blacklisted") in new stack
 +    -- Goto (telekom_in,08121883175,5)
 +    -- Executing [08121883175@telekom_in:5] NoOp("PJSIP/883172_in-0000000b", "der Anrufer ist gewhitelisted, der Anrufer wird zur Nebenstelle 36 und zum Mobiltelefon durchgestellt") in new stack
 +    -- Executing [08121883175@telekom_in:6] Dial("PJSIP/883172_in-0000000b", "PJSIP/36&PJSIP/883176_out/sip:017645534406@tel.t-online.de,10,rWw") in new stack
 +    -- Called PJSIP/36
 +    -- Called PJSIP/883176_out/sip:017645534406@tel.t-online.de
 +    -- PJSIP/36-0000000c connected line has changed. Saving it until answer for PJSIP/883172_in-0000000b
 +    -- PJSIP/883176_out-0000000d connected line has changed. Saving it until answer for PJSIP/883172_in-0000000b
 +    -- PJSIP/36-0000000c is ringing
 +    -- PJSIP/883176_out-0000000d is making progress passing it to PJSIP/883172_in-0000000b
 +    -- PJSIP/883176_out-0000000d is ringing
 +    -- PJSIP/883176_out-0000000d answered PJSIP/883172_in-0000000b
 +    -- Channel PJSIP/883176_out-0000000d joined 'simple_bridge' basic-bridge <868dad5d-a999-4b8e-babf-88fe30fbf9af>
 +    -- Channel PJSIP/883172_in-0000000b joined 'simple_bridge' basic-bridge <868dad5d-a999-4b8e-babf-88fe30fbf9af>
 +       > Bridge 868dad5d-a999-4b8e-babf-88fe30fbf9af: switching from simple_bridge technology to native_rtp
 +       > Remotely bridged 'PJSIP/883172_in-0000000b' and 'PJSIP/883176_out-0000000d' - media will flow directly between them
 +       > Remotely bridged 'PJSIP/883172_in-0000000b' and 'PJSIP/883176_out-0000000d' - media will flow directly between them
 +    -- Channel PJSIP/883172_in-0000000b left 'native_rtp' basic-bridge <868dad5d-a999-4b8e-babf-88fe30fbf9af>
 +  == Spawn extension (telekom_in, 08121883175, 6) exited non-zero on 'PJSIP/883172_in-0000000b'
 +    -- Channel PJSIP/883176_out-0000000d left 'native_rtp' basic-bridge <868dad5d-a999-4b8e-babf-88fe30fbf9af></code>
 +
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-00000000", "Anrufer übertrug die Rufnummer +4917645502006") in new stack
 +    -- Executing [08121883175@telekom_in:2] Set("PJSIP/883172_in-00000000", "access=bl") in new stack
 +    -- Executing [08121883175@telekom_in:3] GotoIf("PJSIP/883172_in-00000000", "0?ohne:testing") in new stack
 +    -- Goto (telekom_in,08121883175,4)
 +    -- Executing [08121883175@telekom_in:4] GotoIf("PJSIP/883172_in-00000000", "0?whitelisted:blacklisted") in new stack
 +    -- Goto (telekom_in,08121883175,10)
 +    -- Executing [08121883175@telekom_in:10] NoOp("PJSIP/883172_in-00000000", "der Anrufer ist geblacklisted und wird daher zur "Abwimmel"-Voicemailbox abgeworfen") in new stack
 +    -- Executing [08121883175@telekom_in:11] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +       > 0x7f2f3402ac30 -- Probation passed - setting RTP source address to 217.0.4.68:48282
 +    -- Executing [08121883175@telekom_in:12] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:13] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:14] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:15] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:16] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:17] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:18] Wait("PJSIP/883172_in-00000000", "1") in new stack
 +    -- Executing [08121883175@telekom_in:19] Playback("PJSIP/883172_in-00000000", "/var/spool/asterisk/voicemail/default/31/unerreichbar") in new stack
 +    -- <PJSIP/883172_in-00000000> Playing '/var/spool/asterisk/voicemail/default/31/unerreichbar.slin' (language 'de')
 +    -- Executing [08121883175@telekom_in:20] Hangup("PJSIP/883172_in-00000000", "") in new stack
 +  == Spawn extension (telekom_in, 08121883175, 20) exited non-zero on 'PJSIP/883172_in-00000000'
 +</code>
 +
 +
 +   # asterisk -vvvvr
 +<code>    -- Executing [08121883175@telekom_in:1] NoOp("PJSIP/883172_in-00000009", "Anrufer übertrug die Rufnummer anonymous") in new stack
 +    -- Executing [08121883175@telekom_in:2] Set("PJSIP/883172_in-00000009", "access=") in new stack
 +    -- Executing [08121883175@telekom_in:3] GotoIf("PJSIP/883172_in-00000009", "1?ohne:testing") in new stack
 +    -- Goto (telekom_in,08121883175,21)
 +    -- Executing [08121883175@telekom_in:21] NoOp("PJSIP/883172_in-00000009", "der Anrufer überträgt keine Nummer, und ist weder geblack- noch gewhitelisted") in new stack
 +    -- Executing [08121883175@telekom_in:22] Dial("PJSIP/883172_in-00000009", "PJSIP/31,60") in new stack
 +    -- Called PJSIP/31
 +    -- PJSIP/31-0000000a is ringing
 +  == Spawn extension (telekom_in, 08121883175, 22) exited non-zero on 'PJSIP/883172_in-00000009'</code>
 +===== deutsche Sprachprompts =====
 +
 +https://www.asterisksounds.org/de/download
 +
 +   # mkdir /usr/share/asterisk/sounds/de
 +
 +   # de /usr/local/src
 +
 +   # wget https://www.asterisksounds.org/de/download/asterisk-sounds-core-de-sln16.zip
 +   # wget https://www.asterisksounds.org/de/download/asterisk-sounds-extra-de-sln16.zip
 +
 +   # unzip /usr/local/src/asterisk-sounds-core-de-sln16.zip -d /usr/share/asterisk/sounds/de/
 +   # unzip /usr/local/src/asterisk-sounds-extra-de-sln16.zip -d /usr/share/asterisk/sounds/de/
 +
 +   # chmod 644 /usr/share/asterisk/sounds/de/* -R
 +
 +   # find /usr/share/asterisk/sounds/de -type d -exec chmod 0755 {} \;
 +
 +   # yum install sox
 +
 +   # vi /usr/local/bin/asterisk-sound-convert
 +<file bash /usr/local/bin/asterisk-sound-convert>#!/bin/bash
 +cd /usr/share/asterisk/sounds/de
 +for a in $(find . -name '*.sln16'); do
 +  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t gsm -r 8k `echo $a|sed "s/.sln16/.gsm/"`;\
 +  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e a-law `echo $a|sed "s/.sln16/.alaw/"`;\
 +  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e mu-law `echo $a|sed "s/.sln16/.ulaw/"`;\
 +done
 +</file>
 +
 +   # chmod +x /usr/local/bin/asterisk-sound-convert
 +
 +   # asterisk-sound-convert
 +
 +
 +===== Music on hold =====
 +
 +   # yum install madplay -y
 +
 +
 +
 +https://www.asteriskguru.com/tools/audio_conversion.php
 +
 +
 +===== Anbindung an das VoIP-Netz der Telekom mit PJSIP =====
 +==== Grundkonfiguration ====
 +
 +==== individuelle Rufnummer bei der abgehenden Wahl setzen ====
 +Haben wir von unserem VoIP-Anbieter mehrere Rufnummern bekommen, so werden wir diese in aller regel einzelnen Endgeräten oder Diensten zuordnen wollen. Bei ankommenden Gesprächen haben wir diese Zuordnung über den Abschnitt **[telekom_in]** vorgenommen. Nun wollen wir aber auch je nach verwendeter internen Nebenstelle unseres Asterisk eine bestimmte Rufnummr **CLID**((**C**alling **L**ine **ID**entification)) als Absender nach extern verwenden und auch übertragen.
 +Das was sich bei dem ein oder anderen höchstprofesssionellen Systemintegrator als unlösbare Herausforderunge bei einer VoIP-Anlage mit 3.000 Nebenstellen darstellen kann, gestaltet sich bei unserem Asterisk-Server als triviale Herausforderung. LOL 
 +
 +Für die Zuordnung der internen Rufnummern zu den jeweiligen externen Absenderrufnummern bzw. PJSIP-Kanälen bedienen wir uns der Asterisk-eigenen Datenbank. Diese Datenbank erreichen wir über die Funktion **database**. Wir können damit z.B. unsere Registrierten Geräte abfragen.
 +
 +   # asterisk -r
 +
 +   vml000177*CLI> database put 33 CLID 9959277_out
 +
 +  Updated database successfully
 +
 +   vml000177*CLI> database put 36 CLID 9959278_out
 +
 +  Updated database successfully
 +
 +   vml000177*CLI> database show
 +
 +  /33/CLID                                          : 9959277_out              
 +  /36/CLID                                          : 9959278_out              
 +
 +
 +===== Voicemail =====
 +
 +   # yum install asterisk-voicemail -y
 +
 +   # chown asterisk:asterisk /var/spool/asterisk/voicemail/ -R
 +
 +   # wget https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
 +   # rpm -Uvh cert-forensics-tools-release*rpm
 +
 +   # vim /etc/yum.repos.d/cert-forensics-tools.repo
 +<file bash /etc/yum.repos.d/cert-forensics-tools.repo>[forensics]
 +name=CERT Forensics Tools Repository
 +baseurl=http://www.cert.org/forensics/repository/centos/cert/$releasever/$basearch
 +enabled=1
 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cert-forensics-2018-04-07
 +gpgcheck=1
 +priority=10
 +
 +[forensics-test]
 +name=CERT Forensics Tools Test Repository
 +baseurl=http://www.cert.org/forensics/repository/centos/cert-test/$releasever/$basearch
 +enabled=0
 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cert-forensics-2018-04-07
 +gpgcheck=1
 +
 +[forensics-splunk]
 +name=CERT Forensics Tools Repository - Splunk
 +baseurl=http://www.cert.org/forensics/repository/centos/splunk/$releasever/$basearch/
 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-splunk
 +enabled=0
 +gpgcheck=1
 +
 +[forensics-sip]
 +name=CERT Forensics Tools Repository - SiLK, IPA, and Postgresql
 +baseurl=http://www.cert.org/forensics/repository/centos/sip/$releasever/$basearch
 +enabled=0
 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-cert-forensics-2018-04-07
 +gpgcheck=1
 +</file>
 +
 +   # yum install lame -y
 +
 +===== Fax =====
 +
 +   # yum install asterisk-fax
 +
 +   # rpm -qil asterisk-fax
 +<code>Name        : asterisk-fax
 +Version     : 14.2.1
 +Release     : 1.el7.centos
 +Architecture: x86_64
 +Install Date: Sun 29 Jan 2017 09:51:54 PM CET
 +Group       : Applications/Internet
 +Size        : 155968
 +License     : GPLv2
 +Signature   : RSA/SHA1, Thu 08 Dec 2016 11:58:07 PM CET, Key ID ccf40e16b9a46fa9
 +Source RPM  : asterisk-14.2.1-1.el7.centos.src.rpm
 +Build Date  : Thu 08 Dec 2016 11:57:54 PM CET
 +Build Host  : olive.ph.tucny.com
 +Relocations : (not relocatable)
 +URL         : http://www.asterisk.org/
 +Summary     : FAX applications for Asterisk
 +Description :
 +FAX applications for Asterisk
 +/etc/asterisk/res_fax.conf
 +/usr/lib64/asterisk/modules/res_fax.so
 +/usr/lib64/asterisk/modules/res_fax_spandsp.so</code>
  
  • voip/c7/asterisk14/start.1484772068.txt.gz
  • Zuletzt geändert: 18.01.2017 20:41.
  • von django