Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
voip:c7:asterisk14:start [18.01.2017 19:04. ] – [Asterisk-Konsole] django | voip:c7:asterisk14:start [18.11.2024 06:56. ] (aktuell) – Externe Bearbeitung 127.0.0.1 |
---|
| |
===== 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 ==== |
**[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 === |
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 |
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 : |
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 : |
/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 |
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 ===== |
Executing last minute cleanups | Executing last minute cleanups |
| |
| |
| ===== Paketfilter ===== |
| |
| # firewall-cmd --get-active-zones |
| <code>public |
| interfaces: eth0 eth2 eth1</code> |
| |
| # firewall-cmd --permanent --zone=internal --change-interface=eth1 |
| |
| The interface is under control of NetworkManager, setting zone to 'internal'. |
| success |
| |
| # firewall-cmd --get-active-zones |
| <code>internal |
| interfaces: eth1 |
| public |
| interfaces: eth0 eth2</code> |
| |
| # firewall-cmd --permanent --zone=internal --add-rich-rule="rule family="ipv4" port protocol="udp" port="4569" accept" |
| |
| success |
| |
| |
| # firewall-cmd --reload |
| |
| success |
| |
| # firewall-cmd --zone=internal --list-all |
| <code>internal (active) |
| target: default |
| icmp-block-inversion: no |
| interfaces: eth1 |
| sources: |
| services: dhcpv6-client ssh |
| ports: |
| protocols: |
| masquerade: no |
| forward-ports: |
| sourceports: |
| icmp-blocks: |
| rich rules: |
| rule family="ipv4" port port="4569" protocol="udp" accept |
| </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> |
| |