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 14:21. ] – [ast.tucny.com] djangovoip:c7:asterisk14:start [18.11.2024 06:56. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
 {{voip:asterisk.gif|Asterisk Logo}}  {{voip:asterisk.gif|Asterisk Logo}} 
 Asterisk ist eine OpenSource Telekommunkationssystem, entwickelt von Marc Spencer / Digium für Linux Systeme.  Asterisk ist eine OpenSource Telekommunkationssystem, entwickelt von Marc Spencer / Digium für Linux Systeme. 
 +
 +===== Dokumentation =====
 +Hinweise zum Release **14** finden sich auf der **[[https://wiki.asterisk.org/wiki/display/AST/Asterisk+14+Documentation|Dokumentationsseite]]** von Asterisk. Alle Neuerungen des aktuellen Release finden sich auf der Seite **[[https://wiki.asterisk.org/wiki/display/AST/New+in+14| New in 14]]**. Die Seite **[[https://wiki.asterisk.org/wiki/display/AST/Asterisk+14+Command+Reference|Asterisk 14 Command Reference]]** beinhaltet weitere Unterseiten zu den Kommandos und APIs.
  
 ===== 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 31: 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 118: 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 126: Zeile 129:
             : inexpensive hardware.</code>             : inexpensive hardware.</code>
  
 +==== RPM-Grundinstallation ====
 +=== asterisk ===
 +Nachdem unsere Vorbereitungen erst einmal abgeschlossen sind, können wir uns nun daran machen, das Grundpaket **Asterisk** zu installieren.
 +   # yum install asterisk -y
 +
 +Den recht umfangreichen Inhalt des RPM-Paketes können wir uns mit Hilfe des folgenden Aufrufs bei Interesse anzeigen lassen.
 +   # rpm -qil asterisk
 +<code>Name        : asterisk
 +Version     : 14.2.1
 +Release     : 1.el7.centos
 +Architecture: x86_64
 +Install Date: Wed 18 Jan 2017 03:08:52 PM CET
 +Group       : Applications/Internet
 +Size        : 14393335
 +License     : GPLv2
 +Signature   : RSA/SHA1, Thu 08 Dec 2016 11:58:05 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         : https://www.asterisk.org/
 +Summary     : The Open Source PBX
 +Description :
 +Asterisk is a complete PBX in software. It runs on Linux and provides
 +all of the features you would expect from a PBX and more. Asterisk
 +does voice over IP in three protocols, and can interoperate with
 +almost all standards-based telephony equipment using relatively
 +inexpensive hardware.
 +/etc/asterisk
 +/etc/asterisk/acl.conf
 +/etc/asterisk/adsi.conf
 +/etc/asterisk/agents.conf
 +/etc/asterisk/alarmreceiver.conf
 +/etc/asterisk/amd.conf
 +/etc/asterisk/ari.conf
 +/etc/asterisk/asterisk.adsi
 +/etc/asterisk/asterisk.conf
 +/etc/asterisk/ccss.conf
 +/etc/asterisk/cdr.conf
 +/etc/asterisk/cdr_custom.conf
 +/etc/asterisk/cdr_manager.conf
 +/etc/asterisk/cdr_syslog.conf
 +/etc/asterisk/cel.conf
 +/etc/asterisk/cel_custom.conf
 +/etc/asterisk/cli.conf
 +/etc/asterisk/cli_aliases.conf
 +/etc/asterisk/cli_permissions.conf
 +/etc/asterisk/codecs.conf
 +/etc/asterisk/confbridge.conf
 +/etc/asterisk/dnsmgr.conf
 +/etc/asterisk/dsp.conf
 +/etc/asterisk/dundi.conf
 +/etc/asterisk/enum.conf
 +/etc/asterisk/extconfig.conf
 +/etc/asterisk/extensions.conf
 +/etc/asterisk/features.conf
 +/etc/asterisk/followme.conf
 +/etc/asterisk/http.conf
 +/etc/asterisk/indications.conf
 +/etc/asterisk/logger.conf
 +/etc/asterisk/manager.conf
 +/etc/asterisk/modules.conf
 +/etc/asterisk/musiconhold.conf
 +/etc/asterisk/muted.conf
 +/etc/asterisk/osp.conf
 +/etc/asterisk/phoneprov.conf
 +/etc/asterisk/queuerules.conf
 +/etc/asterisk/queues.conf
 +/etc/asterisk/res_parking.conf
 +/etc/asterisk/res_stun_monitor.conf
 +/etc/asterisk/resolver_unbound.conf
 +/etc/asterisk/rtp.conf
 +/etc/asterisk/say.conf
 +/etc/asterisk/sla.conf
 +/etc/asterisk/smdi.conf
 +/etc/asterisk/sorcery.conf
 +/etc/asterisk/stasis.conf
 +/etc/asterisk/statsd.conf
 +/etc/asterisk/telcordia-1.adsi
 +/etc/asterisk/udptl.conf
 +/etc/asterisk/users.conf
 +/etc/asterisk/vpb.conf
 +/etc/logrotate.d/asterisk
 +/run/asterisk
 +/usr/lib/systemd/system/asterisk.service
 +/usr/lib/tmpfiles.d/asterisk.conf
 +/usr/lib64/asterisk
 +/usr/lib64/asterisk/modules
 +/usr/lib64/asterisk/modules/app_adsiprog.so
 +/usr/lib64/asterisk/modules/app_agent_pool.so
 +/usr/lib64/asterisk/modules/app_alarmreceiver.so
 +/usr/lib64/asterisk/modules/app_amd.so
 +/usr/lib64/asterisk/modules/app_authenticate.so
 +/usr/lib64/asterisk/modules/app_bridgeaddchan.so
 +/usr/lib64/asterisk/modules/app_bridgewait.so
 +/usr/lib64/asterisk/modules/app_cdr.so
 +/usr/lib64/asterisk/modules/app_celgenuserevent.so
 +/usr/lib64/asterisk/modules/app_chanisavail.so
 +/usr/lib64/asterisk/modules/app_channelredirect.so
 +/usr/lib64/asterisk/modules/app_chanspy.so
 +/usr/lib64/asterisk/modules/app_confbridge.so
 +/usr/lib64/asterisk/modules/app_controlplayback.so
 +/usr/lib64/asterisk/modules/app_db.so
 +/usr/lib64/asterisk/modules/app_dial.so
 +/usr/lib64/asterisk/modules/app_dictate.so
 +/usr/lib64/asterisk/modules/app_directed_pickup.so
 +/usr/lib64/asterisk/modules/app_disa.so
 +/usr/lib64/asterisk/modules/app_dumpchan.so
 +/usr/lib64/asterisk/modules/app_echo.so
 +/usr/lib64/asterisk/modules/app_exec.so
 +/usr/lib64/asterisk/modules/app_externalivr.so
 +/usr/lib64/asterisk/modules/app_followme.so
 +/usr/lib64/asterisk/modules/app_forkcdr.so
 +/usr/lib64/asterisk/modules/app_getcpeid.so
 +/usr/lib64/asterisk/modules/app_image.so
 +/usr/lib64/asterisk/modules/app_macro.so
 +/usr/lib64/asterisk/modules/app_milliwatt.so
 +/usr/lib64/asterisk/modules/app_mixmonitor.so
 +/usr/lib64/asterisk/modules/app_morsecode.so
 +/usr/lib64/asterisk/modules/app_nbscat.so
 +/usr/lib64/asterisk/modules/app_originate.so
 +/usr/lib64/asterisk/modules/app_playback.so
 +/usr/lib64/asterisk/modules/app_playtones.so
 +/usr/lib64/asterisk/modules/app_privacy.so
 +/usr/lib64/asterisk/modules/app_queue.so
 +/usr/lib64/asterisk/modules/app_read.so
 +/usr/lib64/asterisk/modules/app_readexten.so
 +/usr/lib64/asterisk/modules/app_record.so
 +/usr/lib64/asterisk/modules/app_saycounted.so
 +/usr/lib64/asterisk/modules/app_sayunixtime.so
 +/usr/lib64/asterisk/modules/app_senddtmf.so
 +/usr/lib64/asterisk/modules/app_sendtext.so
 +/usr/lib64/asterisk/modules/app_setcallerid.so
 +/usr/lib64/asterisk/modules/app_sms.so
 +/usr/lib64/asterisk/modules/app_softhangup.so
 +/usr/lib64/asterisk/modules/app_speech_utils.so
 +/usr/lib64/asterisk/modules/app_stack.so
 +/usr/lib64/asterisk/modules/app_stasis.so
 +/usr/lib64/asterisk/modules/app_statsd.so
 +/usr/lib64/asterisk/modules/app_system.so
 +/usr/lib64/asterisk/modules/app_talkdetect.so
 +/usr/lib64/asterisk/modules/app_test.so
 +/usr/lib64/asterisk/modules/app_transfer.so
 +/usr/lib64/asterisk/modules/app_url.so
 +/usr/lib64/asterisk/modules/app_userevent.so
 +/usr/lib64/asterisk/modules/app_verbose.so
 +/usr/lib64/asterisk/modules/app_waitforring.so
 +/usr/lib64/asterisk/modules/app_waitforsilence.so
 +/usr/lib64/asterisk/modules/app_waituntil.so
 +/usr/lib64/asterisk/modules/app_while.so
 +/usr/lib64/asterisk/modules/app_zapateller.so
 +/usr/lib64/asterisk/modules/bridge_builtin_features.so
 +/usr/lib64/asterisk/modules/bridge_builtin_interval_features.so
 +/usr/lib64/asterisk/modules/bridge_holding.so
 +/usr/lib64/asterisk/modules/bridge_native_rtp.so
 +/usr/lib64/asterisk/modules/bridge_simple.so
 +/usr/lib64/asterisk/modules/bridge_softmix.so
 +/usr/lib64/asterisk/modules/cdr_csv.so
 +/usr/lib64/asterisk/modules/cdr_custom.so
 +/usr/lib64/asterisk/modules/cdr_manager.so
 +/usr/lib64/asterisk/modules/cdr_syslog.so
 +/usr/lib64/asterisk/modules/cel_custom.so
 +/usr/lib64/asterisk/modules/cel_manager.so
 +/usr/lib64/asterisk/modules/chan_bridge_media.so
 +/usr/lib64/asterisk/modules/chan_rtp.so
 +/usr/lib64/asterisk/modules/codec_a_mu.so
 +/usr/lib64/asterisk/modules/codec_adpcm.so
 +/usr/lib64/asterisk/modules/codec_alaw.so
 +/usr/lib64/asterisk/modules/codec_g722.so
 +/usr/lib64/asterisk/modules/codec_g726.so
 +/usr/lib64/asterisk/modules/codec_gsm.so
 +/usr/lib64/asterisk/modules/codec_ilbc.so
 +/usr/lib64/asterisk/modules/codec_lpc10.so
 +/usr/lib64/asterisk/modules/codec_resample.so
 +/usr/lib64/asterisk/modules/codec_speex.so
 +/usr/lib64/asterisk/modules/codec_ulaw.so
 +/usr/lib64/asterisk/modules/format_g719.so
 +/usr/lib64/asterisk/modules/format_g723.so
 +/usr/lib64/asterisk/modules/format_g726.so
 +/usr/lib64/asterisk/modules/format_g729.so
 +/usr/lib64/asterisk/modules/format_gsm.so
 +/usr/lib64/asterisk/modules/format_h263.so
 +/usr/lib64/asterisk/modules/format_h264.so
 +/usr/lib64/asterisk/modules/format_ilbc.so
 +/usr/lib64/asterisk/modules/format_jpeg.so
 +/usr/lib64/asterisk/modules/format_ogg_speex.so
 +/usr/lib64/asterisk/modules/format_ogg_vorbis.so
 +/usr/lib64/asterisk/modules/format_pcm.so
 +/usr/lib64/asterisk/modules/format_siren14.so
 +/usr/lib64/asterisk/modules/format_siren7.so
 +/usr/lib64/asterisk/modules/format_sln.so
 +/usr/lib64/asterisk/modules/format_vox.so
 +/usr/lib64/asterisk/modules/format_wav.so
 +/usr/lib64/asterisk/modules/format_wav_gsm.so
 +/usr/lib64/asterisk/modules/func_aes.so
 +/usr/lib64/asterisk/modules/func_audiohookinherit.so
 +/usr/lib64/asterisk/modules/func_base64.so
 +/usr/lib64/asterisk/modules/func_blacklist.so
 +/usr/lib64/asterisk/modules/func_callcompletion.so
 +/usr/lib64/asterisk/modules/func_callerid.so
 +/usr/lib64/asterisk/modules/func_cdr.so
 +/usr/lib64/asterisk/modules/func_channel.so
 +/usr/lib64/asterisk/modules/func_config.so
 +/usr/lib64/asterisk/modules/func_cut.so
 +/usr/lib64/asterisk/modules/func_db.so
 +/usr/lib64/asterisk/modules/func_devstate.so
 +/usr/lib64/asterisk/modules/func_dialgroup.so
 +/usr/lib64/asterisk/modules/func_dialplan.so
 +/usr/lib64/asterisk/modules/func_enum.so
 +/usr/lib64/asterisk/modules/func_env.so
 +/usr/lib64/asterisk/modules/func_extstate.so
 +/usr/lib64/asterisk/modules/func_frame_trace.so
 +/usr/lib64/asterisk/modules/func_global.so
 +/usr/lib64/asterisk/modules/func_groupcount.so
 +/usr/lib64/asterisk/modules/func_hangupcause.so
 +/usr/lib64/asterisk/modules/func_holdintercept.so
 +/usr/lib64/asterisk/modules/func_iconv.so
 +/usr/lib64/asterisk/modules/func_jitterbuffer.so
 +/usr/lib64/asterisk/modules/func_lock.so
 +/usr/lib64/asterisk/modules/func_logic.so
 +/usr/lib64/asterisk/modules/func_math.so
 +/usr/lib64/asterisk/modules/func_md5.so
 +/usr/lib64/asterisk/modules/func_module.so
 +/usr/lib64/asterisk/modules/func_periodic_hook.so
 +/usr/lib64/asterisk/modules/func_pitchshift.so
 +/usr/lib64/asterisk/modules/func_presencestate.so
 +/usr/lib64/asterisk/modules/func_rand.so
 +/usr/lib64/asterisk/modules/func_realtime.so
 +/usr/lib64/asterisk/modules/func_sha1.so
 +/usr/lib64/asterisk/modules/func_shell.so
 +/usr/lib64/asterisk/modules/func_sorcery.so
 +/usr/lib64/asterisk/modules/func_speex.so
 +/usr/lib64/asterisk/modules/func_sprintf.so
 +/usr/lib64/asterisk/modules/func_srv.so
 +/usr/lib64/asterisk/modules/func_strings.so
 +/usr/lib64/asterisk/modules/func_sysinfo.so
 +/usr/lib64/asterisk/modules/func_talkdetect.so
 +/usr/lib64/asterisk/modules/func_timeout.so
 +/usr/lib64/asterisk/modules/func_uri.so
 +/usr/lib64/asterisk/modules/func_version.so
 +/usr/lib64/asterisk/modules/func_volume.so
 +/usr/lib64/asterisk/modules/pbx_config.so
 +/usr/lib64/asterisk/modules/pbx_dundi.so
 +/usr/lib64/asterisk/modules/pbx_loopback.so
 +/usr/lib64/asterisk/modules/pbx_realtime.so
 +/usr/lib64/asterisk/modules/pbx_spool.so
 +/usr/lib64/asterisk/modules/res_adsi.so
 +/usr/lib64/asterisk/modules/res_agi.so
 +/usr/lib64/asterisk/modules/res_ari.so
 +/usr/lib64/asterisk/modules/res_ari_applications.so
 +/usr/lib64/asterisk/modules/res_ari_asterisk.so
 +/usr/lib64/asterisk/modules/res_ari_bridges.so
 +/usr/lib64/asterisk/modules/res_ari_channels.so
 +/usr/lib64/asterisk/modules/res_ari_device_states.so
 +/usr/lib64/asterisk/modules/res_ari_endpoints.so
 +/usr/lib64/asterisk/modules/res_ari_events.so
 +/usr/lib64/asterisk/modules/res_ari_model.so
 +/usr/lib64/asterisk/modules/res_ari_playbacks.so
 +/usr/lib64/asterisk/modules/res_ari_recordings.so
 +/usr/lib64/asterisk/modules/res_ari_sounds.so
 +/usr/lib64/asterisk/modules/res_chan_stats.so
 +/usr/lib64/asterisk/modules/res_clialiases.so
 +/usr/lib64/asterisk/modules/res_clioriginate.so
 +/usr/lib64/asterisk/modules/res_convert.so
 +/usr/lib64/asterisk/modules/res_crypto.so
 +/usr/lib64/asterisk/modules/res_endpoint_stats.so
 +/usr/lib64/asterisk/modules/res_format_attr_celt.so
 +/usr/lib64/asterisk/modules/res_format_attr_g729.so
 +/usr/lib64/asterisk/modules/res_format_attr_h263.so
 +/usr/lib64/asterisk/modules/res_format_attr_h264.so
 +/usr/lib64/asterisk/modules/res_format_attr_ilbc.so
 +/usr/lib64/asterisk/modules/res_format_attr_opus.so
 +/usr/lib64/asterisk/modules/res_format_attr_silk.so
 +/usr/lib64/asterisk/modules/res_format_attr_siren14.so
 +/usr/lib64/asterisk/modules/res_format_attr_siren7.so
 +/usr/lib64/asterisk/modules/res_format_attr_vp8.so
 +/usr/lib64/asterisk/modules/res_http_media_cache.so
 +/usr/lib64/asterisk/modules/res_http_post.so
 +/usr/lib64/asterisk/modules/res_http_websocket.so
 +/usr/lib64/asterisk/modules/res_limit.so
 +/usr/lib64/asterisk/modules/res_manager_devicestate.so
 +/usr/lib64/asterisk/modules/res_manager_presencestate.so
 +/usr/lib64/asterisk/modules/res_monitor.so
 +/usr/lib64/asterisk/modules/res_musiconhold.so
 +/usr/lib64/asterisk/modules/res_mutestream.so
 +/usr/lib64/asterisk/modules/res_parking.so
 +/usr/lib64/asterisk/modules/res_phoneprov.so
 +/usr/lib64/asterisk/modules/res_realtime.so
 +/usr/lib64/asterisk/modules/res_rtp_asterisk.so
 +/usr/lib64/asterisk/modules/res_rtp_multicast.so
 +/usr/lib64/asterisk/modules/res_security_log.so
 +/usr/lib64/asterisk/modules/res_smdi.so
 +/usr/lib64/asterisk/modules/res_sorcery_astdb.so
 +/usr/lib64/asterisk/modules/res_sorcery_config.so
 +/usr/lib64/asterisk/modules/res_sorcery_memory.so
 +/usr/lib64/asterisk/modules/res_sorcery_memory_cache.so
 +/usr/lib64/asterisk/modules/res_sorcery_realtime.so
 +/usr/lib64/asterisk/modules/res_speech.so
 +/usr/lib64/asterisk/modules/res_srtp.so
 +/usr/lib64/asterisk/modules/res_stasis.so
 +/usr/lib64/asterisk/modules/res_stasis_answer.so
 +/usr/lib64/asterisk/modules/res_stasis_device_state.so
 +/usr/lib64/asterisk/modules/res_stasis_playback.so
 +/usr/lib64/asterisk/modules/res_stasis_recording.so
 +/usr/lib64/asterisk/modules/res_stasis_snoop.so
 +/usr/lib64/asterisk/modules/res_statsd.so
 +/usr/lib64/asterisk/modules/res_stun_monitor.so
 +/usr/lib64/asterisk/modules/res_timing_pthread.so
 +/usr/lib64/asterisk/modules/res_timing_timerfd.so
 +/usr/lib64/libasteriskssl.so
 +/usr/lib64/libasteriskssl.so.1
 +/usr/sbin/astcanary
 +/usr/sbin/astdb2sqlite3
 +/usr/sbin/asterisk
 +/usr/sbin/astgenkey
 +/usr/sbin/astman
 +/usr/sbin/astversion
 +/usr/sbin/autosupport
 +/usr/sbin/check_expr
 +/usr/sbin/check_expr2
 +/usr/sbin/muted
 +/usr/sbin/rasterisk
 +/usr/sbin/smsq
 +/usr/sbin/stereorize
 +/usr/sbin/streamplayer
 +/usr/share/asterisk
 +/usr/share/asterisk/agi-bin
 +/usr/share/asterisk/documentation
 +/usr/share/asterisk/documentation/appdocsxml.dtd
 +/usr/share/asterisk/documentation/appdocsxml.xslt
 +/usr/share/asterisk/documentation/core-en_US.xml
 +/usr/share/asterisk/documentation/thirdparty
 +/usr/share/asterisk/images
 +/usr/share/asterisk/images/asterisk-intro.jpg
 +/usr/share/asterisk/images/kpad2.jpg
 +/usr/share/asterisk/keys
 +/usr/share/asterisk/moh
 +/usr/share/asterisk/phoneprov
 +/usr/share/asterisk/rest-api
 +/usr/share/asterisk/rest-api/applications.json
 +/usr/share/asterisk/rest-api/asterisk.json
 +/usr/share/asterisk/rest-api/bridges.json
 +/usr/share/asterisk/rest-api/channels.json
 +/usr/share/asterisk/rest-api/deviceStates.json
 +/usr/share/asterisk/rest-api/endpoints.json
 +/usr/share/asterisk/rest-api/events.json
 +/usr/share/asterisk/rest-api/mailboxes.json
 +/usr/share/asterisk/rest-api/playbacks.json
 +/usr/share/asterisk/rest-api/recordings.json
 +/usr/share/asterisk/rest-api/resources.json
 +/usr/share/asterisk/rest-api/sounds.json
 +/usr/share/asterisk/sounds
 +/usr/share/asterisk/static-http
 +/usr/share/asterisk/static-http/ajamdemo.html
 +/usr/share/asterisk/static-http/appdocsxml.xslt
 +/usr/share/asterisk/static-http/astman.css
 +/usr/share/asterisk/static-http/astman.js
 +/usr/share/asterisk/static-http/core-en_US.xml
 +/usr/share/asterisk/static-http/mantest.html
 +/usr/share/asterisk/static-http/prototype.js
 +/usr/share/doc/asterisk-14.2.1
 +/usr/share/doc/asterisk-14.2.1/BUGS
 +/usr/share/doc/asterisk-14.2.1/CREDITS
 +/usr/share/doc/asterisk-14.2.1/ChangeLog
 +/usr/share/doc/asterisk-14.2.1/README
 +/usr/share/doc/asterisk-14.2.1/README-SERIOUSLY.bestpractices.txt
 +/usr/share/doc/asterisk-14.2.1/README-addons.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-1.2.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-1.4.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-1.6.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-1.8.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-10.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-11.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-12.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE-13.txt
 +/usr/share/doc/asterisk-14.2.1/UPGRADE.txt
 +/usr/share/doc/asterisk-14.2.1/Zaptel-to-DAHDI.txt
 +/usr/share/doc/asterisk-14.2.1/asterisk-14.2.1-summary.txt
 +/usr/share/doc/asterisk-14.2.1/asterisk.sgml
 +/usr/share/doc/asterisk-14.2.1/configs
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/README
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/asterisk.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/cdr.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/cdr_custom.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/confbridge.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/extensions.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/indications.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/logger.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/modules.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/musiconhold.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/pjsip.conf
 +/usr/share/doc/asterisk-14.2.1/configs/basic-pbx/voicemail.conf
 +/usr/share/doc/asterisk-14.2.1/configs/samples
 +/usr/share/doc/asterisk-14.2.1/configs/samples/acl.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/adsi.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/agents.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/alarmreceiver.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/alsa.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/amd.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/app_mysql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/app_skel.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/ari.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/asterisk.adsi
 +/usr/share/doc/asterisk-14.2.1/configs/samples/asterisk.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/calendar.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/ccss.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_adaptive_odbc.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_custom.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_manager.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_mysql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_odbc.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_pgsql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_sqlite3_custom.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_syslog.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cdr_tds.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel_custom.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel_odbc.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel_pgsql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel_sqlite3_custom.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cel_tds.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/chan_dahdi.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/chan_mobile.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cli.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cli_aliases.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/cli_permissions.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/codecs.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/confbridge.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/config_test.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/console.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/dbsep.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/dnsmgr.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/dsp.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/dundi.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/enum.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/extconfig.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/extensions.ael.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/extensions.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/extensions.lua.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/extensions_minivm.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/features.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/festival.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/followme.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/func_odbc.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/hep.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/http.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/iax.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/iaxprov.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/indications.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/logger.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/manager.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/meetme.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/mgcp.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/minivm.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/misdn.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/modules.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/motif.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/musiconhold.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/muted.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/ooh323.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/osp.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/oss.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/phone.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/phoneprov.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/pjproject.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/pjsip.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/pjsip_notify.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/pjsip_wizard.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/queuerules.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/queues.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_config_mysql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_config_sqlite.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_config_sqlite3.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_corosync.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_curl.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_fax.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_ldap.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_odbc.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_parking.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_pgsql.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_pktccops.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_snmp.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/res_stun_monitor.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/resolver_unbound.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/rtp.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/say.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/sip.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/sip_notify.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/skinny.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/sla.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/smdi.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/sorcery.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/ss7.timers.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/stasis.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/statsd.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/telcordia-1.adsi
 +/usr/share/doc/asterisk-14.2.1/configs/samples/test_sorcery.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/udptl.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/unistim.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/users.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/voicemail.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/vpb.conf.sample
 +/usr/share/doc/asterisk-14.2.1/configs/samples/xmpp.conf.sample
 +/usr/share/man/man8/astdb2bdb.8.gz
 +/usr/share/man/man8/astdb2sqlite3.8.gz
 +/usr/share/man/man8/asterisk.8.gz
 +/usr/share/man/man8/astgenkey.8.gz
 +/usr/share/man/man8/autosupport.8.gz
 +/usr/share/man/man8/safe_asterisk.8.gz
 +/var/lib/asterisk
 +/var/log/asterisk
 +/var/log/asterisk/cdr-csv
 +/var/log/asterisk/cdr-custom
 +/var/spool/asterisk
 +/var/spool/asterisk/monitor
 +/var/spool/asterisk/outgoing
 +/var/spool/asterisk/tmp
 +/var/spool/asterisk/uploads
 +/var/spool/asterisk/voicemail</code>
 +
 +=== asterisk-iax2 ===
 +Da wir später z.B. für die Clients auf das **I**nter**A**sterisk e**X**change Protokoll oder kurz **[[https://de.wikipedia.org/wiki/InterAsterisk_eXchange|IAX2]]** zurückgreifen wollen, installieren wir hierzu das zugehörige **RPM**. 
 +   # yum install asterisk-iax2
 +
 +Was genau diese RPM-Paket in unserern Server mitgebracht hat zeigt uns wie immer der Aufruf des Befehls **rpm** mit der Option **-qil**.
 +   # rpm -qil asterisk-iax2
 +
 +<code>Name        : asterisk-iax2
 +Version     : 14.2.1
 +Release     : 1.el7.centos
 +Architecture: x86_64
 +Install Date: Wed 18 Jan 2017 07:08:23 PM CET
 +Group       : Applications/Internet
 +Size        : 389194
 +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         : https://www.asterisk.org/
 +Summary     : IAX2 channel driver for Asterisk
 +Description :
 +IAX2 channel driver for Asterisk
 +/etc/asterisk/iax.conf
 +/etc/asterisk/iaxprov.conf
 +/usr/lib64/asterisk/modules/chan_iax2.so
 +/usr/share/asterisk/firmware
 +/usr/share/asterisk/firmware/iax</code>
 +
 +=== 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]]**. 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.
 +
 +Wie installieren also auch hier das passende **RPM**. 
 +   # yum install asterisk-pjsip
 +
 +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
 +Release     : 1.el7.centos
 +Architecture: x86_64
 +Install Date: Thu 19 Jan 2017 02:21:55 PM CET
 +Group       : Applications/Internet
 +Size        : 1554633
 +License     : GPLv2
 +Signature   : RSA/SHA1, Thu 08 Dec 2016 11:58:06 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         : https://www.asterisk.org/
 +Summary     : SIP channel based upon the PJSIP library
 +Description :
 +SIP channel based upon the PJSIP library
 +/etc/asterisk/pjproject.conf
 +/etc/asterisk/pjsip.conf
 +/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 =====
 +==== erster manueller Start ====
 +Abwohl wie noch keine individuellen Konfigurationsänderungen vorgenommen haben, können wir den Asterisk-Daemon schon starten. Hierzu nutzen wir das **systemd** Startscript.
 +   # systemctl start asterisk.service
 +
 +Den erfolgreichen Start des Daemon können wir nun abfragen.
 +   # systemctl status asterisk.service -l
 +
 +<html><pre class="code">
 +<font style="color: rgb(0, 255, 0)"><b>● </b></font><font style="color: rgb(0, 0, 0)">asterisk.service - Asterisk PBX and telephony daemon.
 +   Loaded: loaded (/usr/lib/systemd/system/asterisk.service; disabled; vendor preset: disabled)
 +   Active: <font style="color: rgb(0, 255, 0)"><b>active (running) </b></font><font style="color: rgb(0, 0, 0)"> since Wed 2017-01-18 19:27:13 CET; 29s ago
 + Main PID: 12988 (asterisk)
 +   CGroup: /system.slice/asterisk.service
 +           └─12988 /usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf
 +
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] WARNING[12988]: res_phoneprov.c:1231 get_defaults: Unable to find a valid server address or name.
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] ERROR[12988]: ari/config.c:314 process_config: No configured users for ARI
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: 19:27:14.532 os_core_unix.c !pjlib 2.3 for POSIX initialized
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] WARNING[12988]: res_musiconhold.c:1767 load_moh_classes: A directory must be specified for class 'general'!
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] WARNING[12988]: res_musiconhold.c:1945 load_module: No music on hold classes configured, disabling music on hold.
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: 19:27:14.539          pjlib !select() I/O Queue created (0x7f33ac000948)
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: SIP channel loading...
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] NOTICE[12988]: confbridge/conf_config_parser.c:2126 verify_default_profiles: Adding default_menu menu to app_confbridge
 +Jan 18 19:27:14 vml000177.dmz.nausch.org asterisk[12988]: [Jan 18 19:27:14] NOTICE[12988]: cel_custom.c:97 load_config: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.
 +Jan 18 19:27:15 vml000177.dmz.nausch.org asterisk[12988]: Asterisk Ready.</font>
 +</pre></html>
 +
 +Im Verzeichnis //**/var/log/asterisk**// beschreibt der Daemon auch ein eigene Logdatei
 +   # less /var/log/asterisk/messages
 +
 +<code>[Jan 18 19:27:13] Asterisk 14.2.1 built by mockbuild @ olive.ph.tucny.com on a x86_64 running Linux on 2016-12-08 22:53:51 UTC
 +[Jan 18 19:27:14] NOTICE[12988] cdr.c: CDR simple logging enabled.
 +[Jan 18 19:27:14] NOTICE[12988] loader.c: 223 modules will be loaded.
 +[Jan 18 19:27:14] WARNING[12988] res_phoneprov.c: Unable to find a valid server address or name.
 +[Jan 18 19:27:14] ERROR[12988] ari/config.c: No configured users for ARI
 +[Jan 18 19:27:14] WARNING[12988] res_musiconhold.c: A directory must be specified for class 'general'!
 +[Jan 18 19:27:14] WARNING[12988] res_musiconhold.c: No music on hold classes configured, disabling music on hold.
 +[Jan 18 19:27:14] NOTICE[12988] confbridge/conf_config_parser.c: Adding default_menu menu to app_confbridge
 +[Jan 18 19:27:14] NOTICE[12988] cel_custom.c: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.</code>
 +
 +==== automatischer Start ====
 +Damit der Daemon später beim Hochfahren des Asterisk-Servers automatisch gestartet wird, aktivieren wir den Autostart des Daemon.
 +   # systemctl enable asterisk.service 
 +
 +  Created symlink from /etc/systemd/system/multi-user.target.wants/asterisk.service to /usr/lib/systemd/system/asterisk.service.
 +
 +Wollen wir prüfen ob der Autostart des Daemon richtig gesetzt wurde, fragen wir den Status entsprechend wie folgt ab.
 +   # systemctl is-enabled asterisk.service 
 +
 +  enabled
 +
 +===== Asterisk-Konsole =====
 +Der laufende Asterisk-Server stellt zur Interaktion eine eigene Konsole zur Verfügung. Mit der Option ''-r'' können wir uns beim Aufruf des Befehls **asterisk** mit dieser Konsole verbinden.
 +   # 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 = 12988)
 +vml000177*CLI></code>
 +
 +Eine Übersicht über den Befehlsumfang den uns die Asterisk-Konsole zur Verfügung stellt, können wir uns mit dem Befehl **help** anzeigen lassen.
 +  vml000177*CLI> help
 +<code>                             -- Execute a shell command
 +acl show                       -- Show a named ACL or list all named ACLs
 +agent logoff                   -- Sets an agent offline
 +agent show all                 -- Show status of all agents
 +agent show online              -- Show status of online agents
 +agent show                     -- Show information about an agent
 +agi dump html                  -- Dumps a list of AGI commands in HTML format
 +agi exec                       -- Add AGI command to a channel in Async AGI
 +agi set debug [on|off]         -- Enable/Disable AGI debugging
 +agi show commands [topic]      -- List AGI commands or specific help
 +aoc set debug                  -- enable cli debugging of AOC messages
 +ari mkpasswd                   -- Encrypts a password
 +ari set debug                  -- Enable/disable debugging of an ARI application
 +ari show apps                  -- List registered ARI applications
 +ari show app                   -- Display details of a registered ARI application
 +ari show status                -- Show ARI settings
 +ari show users                 -- List ARI users
 +ari show user                  -- List single ARI user
 +bridge kick                    -- Kick a channel from a bridge
 +bridge show all                -- List all bridges
 +bridge show                    -- Show information about a bridge
 +bridge technology show         -- List registered bridge technologies
 +bridge technology {suspend|unsuspend} -- Suspend/unsuspend a bridge technology
 +cc cancel                      -- Kill a CC transaction
 +cc report status               -- Reports CC stats
 +cdr set debug [on|off]         -- Enable debugging in the CDR engine
 +cdr show active                -- Display active CDRs for channels
 +cdr show status                -- Display the CDR status
 +cdr submit                     -- Posts all pending batched CDR data
 +cel show status                -- Display the CEL status
 +channel originate              -- Originate a call
 +channel redirect               -- Redirect a call
 +channel request hangup         -- Request a hangup on a given channel
 +cli check permissions          -- Try a permissions config for a user
 +cli reload permissions         -- Reload CLI permissions config
 +cli show aliases               -- Show CLI command aliases
 +cli show permissions           -- Show CLI permissions
 +confbridge kick                -- Kick participants out of conference bridges.
 +confbridge list                -- List conference bridges and participants.
 +confbridge lock                -- Lock a conference.
 +confbridge mute                -- Mute participants.
 +confbridge record start        -- Start recording a conference
 +confbridge record stop         -- Stop recording a conference.
 +confbridge show menu           -- Show a conference menu
 +confbridge show menus          -- Show a list of conference menus
 +confbridge show profile bridge -- Show a conference bridge profile.
 +confbridge show profile bridges -- Show a list of conference bridge profiles.
 +confbridge show profile user   -- Show a conference user profile.
 +confbridge show profile users  -- Show a list of conference user profiles.
 +confbridge unlock              -- Unlock a conference.
 +confbridge unmute              -- Unmute participants.
 +config list                    -- Show all files that have loaded a configuration file
 +config reload                  -- Force a reload on modules using a particular configuration file
 +config show help               -- Show configuration help for a module
 +core abort shutdown            -- Cancel a running shutdown
 +core clear profile             -- Clear profiling info
 +core ping taskprocessor        -- Ping a named task processor
 +core reload                    -- Global reload
 +core restart gracefully        -- Restart Asterisk gracefully
 +core restart now               -- Restart Asterisk immediately
 +core restart when convenient   -- Restart Asterisk at empty call volume
 +core set debug channel         -- Enable/disable debugging on a channel
 +core set debug                 -- Set level of debug chattiness
 +core set verbose               -- Set level of verbose chattiness
 +core show applications [like|describing] -- Shows registered dialplan applications
 +core show application          -- Describe a specific dialplan application
 +core show calls [uptime]       -- Display information on calls
 +core show channels [concise|verbose|count] -- Display information on channels
 +core show channel              -- Display information on a specific channel
 +core show channeltypes         -- List available channel types
 +core show channeltype          -- Give more details on that channel type
 +core show codecs [audio|video|image|text] -- Displays a list of registered codecs
 +core show codec                -- Shows a specific codec
 +core show config mappings      -- Display config mappings (file names to config engines)
 +core show file formats         -- Displays file formats
 +core show functions [like]     -- Shows registered dialplan functions
 +core show function             -- Describe a specific dialplan function
 +core show hanguphandlers all   -- Show hangup handlers of all channels
 +core show hanguphandlers       -- Show hangup handlers of a specified channel
 +core show help                 -- Display help list, or specific help on a command
 +core show hints                -- Show dialplan hints
 +core show hint                 -- Show dialplan hint
 +core show image formats        -- Displays image formats
 +core show license              -- Show the license(s) for this copy of Asterisk
 +core show profile              -- Display profiling info
 +core show settings             -- Show some core settings
 +core show sounds               -- Shows available sounds
 +core show sound                -- Shows details about a specific sound
 +core show switches             -- Show alternative switches
 +core show sysinfo              -- Show System Information
 +core show taskprocessors       -- List instantiated task processors and statistics
 +core show threads              -- Show running threads
 +core show translation          -- Display translation matrix
 +core show uptime [seconds]     -- Show uptime information
 +core show version              -- Display version info
 +core show warranty             -- Show the warranty (if any) for this copy of Asterisk
 +core stop gracefully           -- Gracefully shut down Asterisk
 +core stop now                  -- Shut down Asterisk immediately
 +core stop when convenient      -- Shut down Asterisk at empty call volume
 +core waitfullybooted           -- Wait for Asterisk to be fully booted
 +data get                       -- Data API get
 +data show providers            -- Show data providers
 +database del                   -- Removes database key/value
 +database deltree               -- Removes database keytree/values
 +database get                   -- Gets database value
 +database put                   -- Adds/updates database value
 +database query                 -- Run a user-specified query on the astdb
 +database show                  -- Shows database contents
 +database showkey               -- Shows database contents
 +devstate change                -- Change a custom device state
 +devstate list                  -- List currently known custom device states
 +dialplan add extension         -- Add new extension into context
 +dialplan add ignorepat         -- Add new ignore pattern
 +dialplan add include           -- Include context in other context
 +dialplan debug                 -- Show fast extension pattern matching data structures
 +dialplan reload                -- Reload extensions and *only* extensions
 +dialplan remove context        -- Remove a specified context
 +dialplan remove extension      -- Remove a specified extension
 +dialplan remove ignorepat      -- Remove ignore pattern from context
 +dialplan remove include        -- Remove a specified include from context
 +dialplan save                  -- Save current dialplan into a file
 +dialplan set chanvar           -- Set a channel variable
 +dialplan set extenpatternmatchnew false -- Use the Old extension pattern matching algorithm.
 +dialplan set extenpatternmatchnew true -- Use the New extension pattern matching algorithm.
 +dialplan set global            -- Set global dialplan variable
 +dialplan show                  -- Show dialplan
 +dialplan show chanvar          -- Show channel variables
 +dialplan show globals          -- Show global dialplan variables
 +dnsmgr refresh                 -- Performs an immediate refresh
 +dnsmgr reload                  -- Reloads the DNS manager configuration
 +dnsmgr status                  -- Display the DNS manager status
 +dundi flush [stats]            -- Flush DUNDi cache
 +dundi lookup                   -- Lookup a number in DUNDi
 +dundi precache                 -- Precache a number in DUNDi
 +dundi query                    -- Query a DUNDi EID
 +dundi set debug {on|off}       -- Enable/Disable DUNDi debugging
 +dundi show cache               -- Show DUNDi cache
 +dundi show entityid            -- Display Global Entity ID
 +dundi show hints               -- Show DUNDi hints in the cache
 +dundi show mappings            -- Show DUNDi mappings
 +dundi show peers [registered|include|exclude|begin] -- Show defined DUNDi peers
 +dundi show peer                -- Show info on a specific DUNDi peer
 +dundi show precache            -- Show DUNDi precache
 +dundi show requests            -- Show DUNDi requests
 +dundi show trans               -- Show active DUNDi transactions
 +dundi store history {on|off}   -- Enable/Disable DUNDi historic records
 +features show                  -- Lists configured features
 +file convert                   -- Convert audio file
 +group show channels            -- Display active channels with group(s)
 +hangup request                 -- <no description available>
 +help                           -- <no description available>
 +http show status               -- Display HTTP server status
 +iax2 provision                 -- Provision an IAX device
 +iax2 prune realtime            -- Prune a cached realtime lookup
 +iax2 reload                    -- Reload IAX configuration
 +iax2 set debug {on|off|peer}   -- Enable/Disable IAX debugging
 +iax2 set debug jb {on|off}     -- Enable/Disable IAX jitterbuffer debugging
 +iax2 set debug trunk {on|off}  -- Enable/Disable IAX trunk debugging
 +iax2 set mtu                   -- Set the IAX systemwide trunking MTU
 +iax2 show cache                -- Display IAX cached dialplan
 +iax2 show callnumber usage     -- Show current entries in IP call number limit table
 +iax2 show channels             -- List active IAX channels
 +iax2 show firmware             -- List available IAX firmware
 +iax2 show netstats             -- List active IAX channel netstats
 +iax2 show peer                 -- Show details on specific IAX peer
 +iax2 show peers                -- List defined IAX peers
 +iax2 show provisioning         -- Display iax provisioning
 +iax2 show registry             -- Display IAX registration status
 +iax2 show stats                -- Display IAX statistics
 +iax2 show threads              -- Display IAX helper thread info
 +iax2 show users [like]         -- List defined IAX users
 +iax2 test losspct              -- Set IAX2 incoming frame loss percentage
 +iax2 unregister                -- Unregister (force expiration) an IAX2 peer from the registry
 +indication add                 -- Add the given indication to the country
 +indication remove              -- Remove the given indication from the country
 +indication show                -- Display a list of all countries/indications
 +keys init                      -- Initialize RSA key passcodes
 +keys show                      -- Displays RSA key information
 +local show channels            -- List status of local channels
 +logger add channel             -- Adds a new logging channel
 +logger mute                    -- Toggle logging output to a console
 +logger reload                  -- Reopens the log files
 +logger remove channel          -- Removes a logging channel
 +logger rotate                  -- Rotates and reopens the log files
 +logger set level {DEBUG|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} -- Enables/Disables a specific logging level for this console
 +logger show channels           -- List configured log channels
 +manager reload                 -- Reload manager configurations
 +manager set debug [on|off]     -- Show, enable, disable debugging of the manager code
 +manager show command           -- Show a manager interface command
 +manager show commands          -- List manager interface commands
 +manager show connected         -- List connected manager interface users
 +manager show eventq            -- List manager interface queued events
 +manager show events            -- List manager interface events
 +manager show event             -- Show a manager interface event
 +manager show settings          -- Show manager global settings
 +manager show users             -- List configured manager users
 +manager show user              -- Display information on a specific manager user
 +media cache create             -- Create an item in the media cache
 +media cache delete             -- Remove an item from the media cache
 +media cache refresh            -- Refresh an item in the media cache
 +media cache show all           -- Show all items in the media cache
 +media cache show               -- Show a single item in the media cache
 +mixmonitor {start|stop|list}   -- Execute a MixMonitor command
 +module load                    -- Load a module by name
 +module reload                  -- Reload configuration for a module
 +module show [like]             -- List modules and info
 +module unload                  -- Unload a module by name
 +moh reload                     -- Reload MusicOnHold
 +moh show classes               -- List MusicOnHold classes
 +moh show files                 -- List MusicOnHold file-based classes
 +no debug channel               -- Disable debugging on channel(s)
 +originate                      -- <no description available>
 +parking show                   -- Show a parking lot or a list of all parking lots.
 +phoneprov show routes          -- Show registered phoneprov http routes
 +pjsip reload                   -- <no description available>
 +presencestate change           -- Change a custom presence state
 +presencestate list             -- List currently know custom presence states
 +pri intense debug span         -- <no description available>
 +queue add member               -- Add a channel to a specified queue
 +queue reload {parameters|members|rules|all} -- Reload queues, members, queue rules, or parameters
 +queue remove member            -- Removes a channel from a specified queue
 +queue reset stats              -- Reset statistics for a queue
 +queue set penalty              -- Set penalty for a channel of a specified queue
 +queue set ringinuse            -- Set ringinuse for a channel of a specified queue
 +queue show                     -- Show status of a specified queue
 +queue show rules               -- Show the rules defined in queuerules.conf
 +queue {pause|unpause} member   -- Pause or unpause a queue member
 +realtime destroy               -- Delete a row from a RealTime database
 +realtime load                  -- Used to print out RealTime variables.
 +realtime store                 -- Store a new row into a RealTime database
 +realtime update                -- Used to update RealTime variables.
 +realtime update2               -- Used to test the RealTime update2 method
 +reload                         -- <no description available>
 +rtcp set debug {on|off|ip}     -- Enable/Disable RTCP debugging
 +rtcp set stats {on|off}        -- Enable/Disable RTCP stats
 +rtp set debug {on|off|ip}      -- Enable/Disable RTP debugging
 +say load [new|old]             -- Set or show the say mode
 +sip notify                     -- Send a notify packet to a SIP peer
 +sip prune realtime [peer|all]  -- Prune cached Realtime users/peers
 +sip qualify peer               -- Send an OPTIONS packet to a peer
 +sip reload                     -- Reload SIP configuration
 +sip set debug {on|off|ip|peer} -- Enable/Disable SIP debugging
 +sip set history {on|off}       -- Enable/Disable SIP history
 +sip show {channels|subscriptions} -- List active SIP channels or subscriptions
 +sip show channelstats          -- List statistics for active SIP channels
 +sip show channel               -- Show detailed SIP channel info
 +sip show domains               -- List our local SIP domains
 +sip show history               -- Show SIP dialog history
 +sip show inuse                 -- List all inuse/limits
 +sip show mwi                   -- Show MWI subscriptions
 +sip show objects               -- List all SIP object allocations
 +sip show peers                 -- List defined SIP peers
 +sip show peer                  -- Show details on specific SIP peer
 +sip show registry              -- List SIP registration status
 +sip show sched                 -- Present a report on the status of the scheduler queue
 +sip show settings              -- Show SIP global settings
 +sip show tcp                   -- List TCP Connections
 +sip show users                 -- List defined SIP users
 +sip show user                  -- Show details on specific SIP user
 +sip unregister                 -- Unregister (force expiration) a SIP peer from the registry
 +sorcery memory cache dump      -- Dump all objects within a sorcery memory cache
 +sorcery memory cache expire    -- Expire a specific object or ALL objects within a sorcery memory cache
 +sorcery memory cache populate  -- Clear and populate the sorcery memory cache with objects from the backend
 +sorcery memory cache show      -- Show sorcery memory cache information
 +sorcery memory cache stale     -- Mark a specific object or ALL objects as stale within a sorcery memory cache
 +stun set debug {on|off}        -- Enable/Disable STUN debugging
 +stun show status               -- Show STUN servers and statuses
 +timing test                    -- Run a timing test
 +udptl set debug {on|off|ip}    -- Enable/Disable UDPTL debugging
 +udptl show config              -- Show UDPTL config options
 +ulimit                         -- Set or show process resource limits
 +xmldoc dump                    -- Dump the XML docs to the specified file</code>
 +
 +Eine Übersicht der wesentlichen Einstellungsoptionen können wir uns z.B. mit dem Befehl ''core show settings'' anzeigen lassen.
 +  vml000177*CLI> core show settings
 +<code>
 +PBX Core settings
 +-----------------
 +  Version:                     14.2.1
 +  Build Options:               LOADABLE_MODULES
 +  Maximum calls:               Not set
 +  Maximum open file handles:   1024
 +  Root console verbosity:      0
 +  Current console verbosity:   0
 +  Debug level:                 0
 +  Maximum load average:        0.000000
 +  Minimum free memory:         0 MB
 +  Startup time:                19:27:13
 +  Last reload time:            19:27:13
 +  System:                      Linux/3.10.0-327.18.2.el7.x86_64 built by mockbuild on x86_64 2016-12-08 22:53:51 UTC
 +  System name:                 
 +  Entity ID:                   52:54:00:9a:ac:d3
 +  PBX UUID:                    a4a776d9-2284-4ef4-a65a-19e838658ef0
 +  Default language:            en
 +  Language prefix:             Enabled
 +  User name and group:         /
 +  Executable includes:         Disabled
 +  Transcode via SLIN:          Enabled
 +  Transmit silence during rec: Disabled
 +  Generic PLC:                 Enabled
 +  Min DTMF duration::          80
 +  RTP dynamic payload types:   96-127
 +
 +* Subsystems
 +  -------------
 +  Manager (AMI):               Disabled
 +  Web Manager (AMI/HTTP):      Disabled
 +  Call data records:           Enabled
 +  Realtime Architecture (ARA): Disabled
 +
 +* Directories
 +  -------------
 +  Configuration file:          /etc/asterisk/asterisk.conf
 +  Configuration directory:     /etc/asterisk
 +  Module directory:            /usr/lib64/asterisk/modules
 +  Spool directory:             /var/spool/asterisk
 +  Log directory:               /var/log/asterisk
 +  Run/Sockets directory:       /run/asterisk
 +  PID file:                    /run/asterisk/asterisk.pid
 +  VarLib directory:            /usr/share/asterisk
 +  Data directory:              /usr/share/asterisk
 +  ASTDB:                       /var/spool/asterisk/astdb
 +  IAX2 Keys directory:         /usr/share/asterisk/keys
 +  AGI Scripts directory:       /usr/share/asterisk/agi-bin
 +
 +</code>
 +
 +Mit der Tastetnkombination **STRG** und **C** verlassen wir die Asterisk Konsole wieder. 
 +  vml000177*CLI> 
 +
 +  Disconnected from Asterisk server
 +  Asterisk cleanly ending (0).
 +  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>
  
  • voip/c7/asterisk14/start.1484749311.txt.gz
  • Zuletzt geändert: 18.01.2017 14:21.
  • von django