Asterisk 11

VoIP TK Anlage, PBX Software

Alle Carrier verwenden inzwischen IP-Technik in ihren Netzen

Alle Carrier verwenden inzwischen IP-Technik in ihren Netzen, sodass selbst ISDN und analog Kunden ab der Vermittlungsstelle per VoIP telefonieren. Auch werden inzwischen Mobilfunkbasisstationen über die IP-Backbones angebunden. Mittelfristig wird restlos alles von Telefon, Internet bis TV über IP übertragen.
Deine VoIP-Telefonate als Telekom-Kunde werden das Telekom-Netz allerdings nicht verlassen, sodass diese im Machtbereich der Telekom bleiben. Nur weil bei VoIP das Internetprotokoll verwendet wird, heißt das nicht, daß Deine Telefonate durch öffentliche Teile des Internets geroutet werden. Ich weiß nicht wie die Telekom ihre SIP-Infrastruktur aufgebaut hat, aber bei Telefonica beispielsweise befinden sich die SIP-Server in einem Intranet, zu dem nur die eigenen DSL-Kunden Zugang haben und zwar über eine sog. 2. PVC.
Dass die Telekom SIP-Server von extern unerreichbar sind, wird wohl an der Isolation der Server vom restlichen Internet liegen. Man könnte die SIP-Server aber sowohl über ein Intranet als auch von extern zugänglich machen, ohne dass externe User irgendwie an die Datenströme des Intranets gelangen können. Daß man das nicht macht, liegt sicherlich weniger an Sicherheitsbedenken sondern daran, dass die Telekom vermeiden möchte, dass Kunden ihre VoIP-Accounts von unterwegs nutzen und so z.B. Mobilfunkumsätze mindern. Bei 1&1 dagegen ist die Nutzung der VoIP-Accounts aus dem Internet möglich.

Asterisk 11.1.2 update

Informationen zum Update:
Quelle: Asterisk 11.1.2 Changelog
http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11-current

Asterisk 11.0.1 update

Update auf die Asterisk Version 11.0.1 erfolgreich durchgeführt.

 

Pandion click to call im Chat Client via Asterisk PBX

Pandion Messenger Modification callto: -> CTI-Application

Um einen neuen Button in der Chat-Box zu erstellen …

Editiert Programm\Pandion\Application\src\chat-container.html ab Zeile 125 einfügen


button
oncontextmenu="return false"
class=toolbar-button
id=btn-callto
onmouseover="ToolbarButtonMouseOver( this )"
onmouseout="ToolbarButtonMouseOut( this )"
onclick="callto()"
>
SPAN id=txt-background>Anrufen /SPAN
/button

Um einen neue Funktion für den Button zu erstellen …
Editiert Programm\Pandion\Application\src\main\ContainerCode.js ab Zeile 331 einfügen


function callto ()
{
var callto = "callto:" + gContainer.ActiveTrackerAddress;
external.windows( 'MainWindow' ).Do( 'dial_webbrowser', callto );

}

Um einen neue btn-callto Look für den Button zu erstellen …
Editiert Programm\Pandion\Application\css\chat-container.css ab Zeile 335 einfügen


#btn-callto span {
background-image: url(../images/clients/sms.gif);
}

 

Asterisk Musiconhold für große Systeme

Für große Systeme sollte man den rawplayer für Musiconhold nachinstallieren und die MP3- oder WAV-Dateien in RAW wandeln.

Im Asterisk-Source-Verzeichnis /contrib/utils den rawplayer installieren mit:

gcc -O2 rawplayer.c -o /usr/bin/rawplayer

Mit sox die Sound-Dateien wandeln.

WAV nach RAW

sox -c 1 track01.wav -t raw -r 8000 -c 1 -w track01.raw vol 0.5

Der sox Parameter vol 0.5 reduziert die Lautstärke der RAW Datei.

musiconhold.conf Beispiel

[default]
mode=custom
directory=/var/lib/asterisk/mohraw
application=/usr/bin/rawplayer

Hier noch 3 moh raw Dateien die ich mit Music Maker erstellt habe:
Datei-Format: Mono und eine Abtastfrequenz 8kHz
http://www.soho-piper.de/asterisk/moh001.raw
http://www.soho-piper.de/asterisk/moh002.raw
http://www.soho-piper.de/asterisk/moh003.raw

 

 

click2dial – callto: to AMI – CTI-Applikationen

 

Getestet habe ist das Programm unter Windows7/32bit und
Asterisk 1.8.x,  10.5.x und 11.0.1
.NET Framework 4 ist erforderlich.

SetupPipercallto.exe Download

Installation:

1. Erstellt einen Manager User in der Asterisk manager.conf
Beispiel …
[rainer]
secret = hier_das_passwort
write = originate,command,call

deny = 0.0.0.0/0.0.0.0
permit = 192.168.1.0/255.255.255.0 ; Beispiel-IP-Bereich

2. Startet das Programm pipercallto und geht in die Einstellungen

3. Jetzt könnt ihr im z.B. Intranet WEB Telefonbuch, openERP-System oder suparCRM die Ausgabe der Telefonnummer ändern.

<a href=“callto:$TelefonNummer>$TelefonNummer</a>


Ein einfaches open source WEB-Adressbuch gibt es hier:
http://sourceforge.net/projects/theaddressbook/

Ändert in der Datei list.php die Zeile 288 und 290:
Zeile 288 in:
if ($contact_phone1) { echo(„<a href=’callto:$contact_phone1′>$contact_phone1</a>; }

Zeile 290 in:
if ($contact_phone2) { echo(„<a href=’callto:$contact_phone2′>$contact_phone2</a>; }

Ändert in der Datei address.php die Zeile 194 und 195:
Zeile 194 in:
if ($address_phone1) { echo „\n<br><a href=’callto:$address_phone1′>$address_phone1</a>“; }

Zeile 195 in:
if ($address_phone2) { echo „\n<br><a href=’callto:$address_phone2′>$address_phone2</a>“; }

Das TBDialout Add-On für das Thundebird-Adressbuch gibt es hier:
https://addons.mozilla.org/de/thunderbird/addon/tbdialout/

Das Telify Add-on für Firefox und Thunderbird für klickbare Telefonnummern auf WEB Seiten und in e-Mails gibt es hier:
https://addons.mozilla.org/en-US/thunderbird/addon/telify/

Substrings zuschneiden.

Hier ein kleines Beispiel:

exten => 1,1,Set(TestNummer=123456789)

Die 2. Stelle bis zum Ende ausschneiden mit :1
exten => 1,2,Dial(SIP/${TestNummer:1}) Ergebnis -> Dial(SIP/23456789)

Die hinteren 3 Zahlen ausschneiden mit :-3
exten => 1,2,Dial(SIP/${TestNummer:-3}) Ergebnis -> Dial(SIP/789)

Die vorderen 4 Zahlen ausschneiden mit :0:4
exten => 1,2,Dial(SIP/${TestNummer:0:4}) Ergebnis -> Dial(SIP/1234)

Ab der 2. Stelle 4 Zahlen ausschneiden mit :2:4
exten => 1,2,Dial(SIP/${TestNummer:2:4}) Ergebnis -> Dial(SIP/2345)

Oder mit der CUT Funktion ab einem Zeichen z.B. @  zuschneiden.
siehe http://www.soho-piper.de/?p=262

Anrufe via SIP_HEADER(To) zuordnen.

Das Problem:

Ich habe bei Sipgate 3 Register und 10 externe Rufnummern.
Mit den 3 Register kann ich aber nur 3 externe Rufnummern an 3 internen Endgeräten zuordnen.

Die Lösung:

Ich schicke ALLE externe Anrufe in eine exten sipgatefilter und schneide mir den SIP_HEADER(To) so zu, dass ich ein Goto(Sprungadresse,1) ausführen kann.

Mit dieser Lösung kann ich die 10 Rufnummern (97167160 bis 97167169) den 10 internen Rufnummern (1000 bis 1009) zuordnen.

sip.conf

register => [1.-sip-reg-name]:[dein-sip-reg-password]@sipgate.de/sipgatefilter
register => [2.-sip-reg-name]:[dein-sip-reg-password]@sipgate.de/sipgatefilter
register => [3.-sip-reg-name]:[dein-sip-reg-password]@sipgate.de/sipgatefilter

extensions.conf

exten => sipgatefilter,1,NoOp(*** ${SIP_HEADER(To)} ***)
; SIP_HEADER(To) = <sip:004922897167160@sipgate.de>
; Ich brauche aber nur 97167160 für den Goto Befehl
same => n,Set(Sprungadresse=${CUT(SIP_HEADER(To),@,1)})
;  schneidet @siggate.de ab.
; Sprungadresse = <sip:004922897167160
same => n,Goto(${Sprungadresse:-8},1)
;  schneidet die letzten 8 Nummern aus.
; Sprungadresse:-8 = 97167160

exten => 97167160,1,Dial(SIP/1000)

exten => 97167161,1,Dial(SIP/1001)

exten => 97167162,1,Dial(SIP/1002)

exten => 97167163,1,Dial(SIP/1003)

exten => 97167164,1,Dial(SIP/1004)

exten => 97167165,1,Dial(SIP/1005)

exten => 97167166,1,Dial(SIP/1006)

exten => 97167167,1,Dial(SIP/1007)

exten => 97167168,1,Dial(SIP/1008)

exten => 97167169,1,Dial(SIP/1009)

 

 

 

Asterisk – telefonieren über Googletalk

Beispiel für … GoogleTalk im Asterisk mit Menüabfrage in der Chatbox
Download: http://www.soho-piper.de/asterisk/google.txt

[google-in]
exten => s,1,Answer
exten => s,n,Set(CHANNEL(LANGUAGE)=de)
exten => s,n,Set(googlecid=${CALLERID(name)})
exten => s,n,Set(normalcid=${CUT(googlecid,/,1)})
exten => s,n,Set(CALLERID(all)=${normalcid})
exten => s,n,Wait(4)
exten => s,n,SendText(\n\r TEST TEST TEST auf exten s …\n  Ihre CALLERID ist:\n ${CALLERID(name)})
exten => s,n,SendText(\n Wenn Sie die App-Nr. kennen, …\n dann koennen Sie sie jetzt hier eintippen)
exten => s,n,SendText(\n 1 -> Rainers 1.Grandstream \n 2 -> Rainers 2.Grandstream \n 3 -> Konferenz \n 4 -> Queue1 \n 5 -> Wetter-Ansage-Bonn \n 6 -> Echo-Test)
exten => s,n,SendDTMF(1)
exten => s,n,Background(vm-enter-num-to-call)
exten => s,n,Set(usereingabe=${JABBER_RECEIVE(gtalk_account,${CALLERID(name)::15},20)})
exten => s,n,SendText(\n\rSie werden jetzt mit App.Nr. ${usereingabe} verbunden.) exten => s,n,Goto(jabber-in,${usereingabe},1) exten => s,n,Hangup()

exten => 1,1,Dial(SIP/1010)

exten => 2,1,Dial(SIP/1003)

exten => 3,1,meetme(1232,M)

exten => 4,1,queue(queue1)

exten => 5,1,Answer
exten => 5,n,Wait(2)
exten => 5,n,Playback(wetter)
exten => 5,n,Goto(jabber-in,5,2)

exten => 6,1,Answer
exten => 6,n,Wait(2)
exten => 6,n,Playback(demo-echotest)
exten => 6,n,Echo
exten => 6,n,Playback(demo-echodone)
exten => 6,n,Hangup

exten => h,1,JabberSend(gtalk_account,${CALLERID(name)}, Vielen Danke fuer Ihren Anruf.)
exten => h,n,Hangup

 

Asterisk Call Completion Supplementary Services

Call Completion Supplementary Services (CCSS) Neu im Asterisk 1.8.X

Wird in der ccss.conf eingestellt
Ich habe hier die Policy auf generic eingestellt
ccss.conf

cc_agent_policy=generic
cc_monitor_policy=generic

sip.conf kommt hinzu

[1000]
; alle Standardwerte plus
call-limit=1
cc_agent_policy=generic
cc_monitor_policy=generic

[1001]
; alle Standardwerte plus
call-limit=1
cc_agent_policy=generic
cc_monitor_policy=generic

extensions.conf

exten = 1000,1,Dial(SIP/1000,20,tr)
same = n,CallCompletionRequest
same = n,Hangup

exten = 1001,1,Dial(SIP/1001,20,tr)
same = n,CallCompletionRequest
same = n,Hangup

Gruß
Rainer