Volá na externí číslo -> ústředna volá zpět -> vytočíme interní číslo uživatele -> komunikujeme přes outgoing kanál z trunku na ústřednu.
co budeme potřebovat:
Pár řádků dialplanu, které budou zpracovávat příchozí a odchozí spojení
Skript pro generování .call souboru.
A tedy. Prvním krokem musíme… ukončit hovor:
[callback-context]
exten => _7XXXXX.,1,Hangup
Dále veškeré zpracování (jaké velké slovo – zpracování… Takže… Zpracovávačka) bude probíhat v extension „h“ tohoto stejného kontextu, protože sluchátko jsme již položili.
Spustíme skript pro vytvoření .call souboru.
exten => h,1,System(/usr/local/scripts/callback.sh ${CALLERID(num)})
Samotný skript vypadá takto:
#!/bin/bash
callee=$1
Channel="SIP/"$callee
MaxRetries=10
RetryTime=10
WaitTime=20
Context="call-to"
Extension="callback"
Priority=1
DATA=`date`
echo "Channel: $Channel
CallerId: EXTERNAL_PBX_NUM <EXTERNAL_PBX_NUM>
MaxRetries: $MaxRetries
RetryTime: $RetryTime
WaitTime: $WaitTime
Context: $Context
Extension: $Extension
Priority: $Priority" > /var/spool/asterisk/outgoing/$callee.call
Skript zavolá zpět tomu, kdo volal ústřednu, a po zvednutí sluchátka přesměruje kanál do kontextu call-to na extension callback pro zpracování:
V tomto kontextu přehrajeme uvítací soubor a výzvu k zadání čísla (pro ty, kdo se budou zabývat kapipastou – jméno souboru je vlastní. Ve výchozím nastavení Asterisk tento soubor nemá. Zapište svůj nebo použijte standardní ) budeme čekat na zadání čísla, na které je třeba zavolat, které musí obsahovat – Maximálně 4 číslice, čekací doba bude 5 sekund a poskytneme pouze 1 pokus o zadání.
Po zadání čísla na něj zavoláme a spojíme 2 kanály do bridge pomocí funkce Dial.
[call-to] exten => callback,1,Read(NUM,input-number,4,n,1,5) exten => callback,n,DIAL(PJSIP/${NUM})
Tímto způsobem voláme na interní číslo ne na náš účet, ale na účet ústředny.
