И вновь Мультифон и Астериск
Исходные данные:
транк
| Code: |
| [multifon] disallow=all username=7926ххх type=peer transport=tcp secret= qualify=yes nat=yes insecure=invite,port host=sbc.megafon.ru fromuser=7926ххх fromdomain=multifon.ru dtmfmode=inband context=all allow=g729,ulaw |
телефон
| Code: |
| [900] deny=0.0.0.0/0.0.0.0 secret=ххх dtmfmode=rfc2833 canreinvite=no context=all host=dynamic type=friend nat=yes port=5060 qualify=yes callgroup= pickupgroup= dial=SIP/900 mailbox=900@device permit=0.0.0.0/0.0.0.0 callerid=device callcounter=yes faxdetect=no |
registry
| Code: |
| register=7926xxx@multifon.ru:xxx:7926xxx@sbc.megafon.ru/7926xxx |
| Code: |
| Host dnsmgr Username Refresh State Reg.Time sbc.megafon.ru:5060 N 7926xxx@ 3585 Registered Tue, 21 Dec 2010 20:32:52 |
debug
| Code: |
| SIP Debugging Enabled for IP: 193.201.229.35:5060 == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [+7926xxx@all:1] Macro("SIP/900-00000053", "user-callerid,SKIPTTL,") in new stack .. -- Executing [s@macro-dialout-trunk:19] Dial("SIP/900-00000053", "SIP/multifon/7926xxx,300,rtT") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 Audio is at 87.228.70.158 port 19202 Adding codec 0x4 (ulaw) to SDP Reliably Transmitting (NAT) to 193.201.229.35:5060: INVITE sip:7926xxx@sbc.megafon.ru SIP/2.0 Via: SIP/2.0/TCP 87.228.70.158:5060;branch=z9hG4bK59ce5aff;rport Max-Forwards: 70 From: "from_multifon" ;tag=as44d5e1f9 To: Contact: Call-ID: 2b7323893488707869dc8de6288f12e9@multifon.ru CSeq: 102 INVITE User-Agent: Asterisk PBX 1.6.2.7-1ubuntu1 Date: Tue, 21 Dec 2010 17:20:38 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO Supported: replaces, timer Content-Type: application/sdp Content-Length: 216 v=0 o=root 479685416 479685416 IN IP4 87.228.70.158 s=Asterisk PBX 1.6.2.7-1ubuntu1 c=IN IP4 87.228.70.158 t=0 0 m=audio 19202 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv --- -- Called multifon/7926xxx loox*CLI> SIP/2.0 100 Trying Via: SIP/2.0/TCP 87.228.70.158:5060;received=87.228.70.158;branch=z9hG4bK59ce5aff;rport=34033 From: "from_multifon" ;tag=as44d5e1f9 To: Call-ID: 2b7323893488707869dc8de6288f12e9@multifon.ru CSeq: 102 INVITE Content-Length: 0 --- (7 headers 0 lines) --- loox*CLI> SIP/2.0 403 Forbidden Via: SIP/2.0/TCP 87.228.70.158:5060;received=87.228.70.158;branch=z9hG4bK59ce5aff;rport=34033 From: "from_multifon" ;tag=as44d5e1f9 To: ;tag=aprqngfrt-hvpp0820000c6 Call-ID: 2b7323893488707869dc8de6288f12e9@multifon.ru CSeq: 102 INVITE Reason: Q.850;cause=55;text="Call Terminated" Content-Length: 0 --- (8 headers 0 lines) --- Transmitting (NAT) to 193.201.229.35:5060: ACK sip:7926xxx@sbc.megafon.ru SIP/2.0 Via: SIP/2.0/TCP 87.228.70.158:5060;branch=z9hG4bK59ce5aff;rport Max-Forwards: 70 From: "from_multifon" ;tag=as44d5e1f9 To: ;tag=aprqngfrt-hvpp0820000c6 Contact: Call-ID: 2b7323893488707869dc8de6288f12e9@multifon.ru CSeq: 102 ACK User-Agent: Asterisk PBX 1.6.2.7-1ubuntu1 Content-Length: 0 --- -- SIP/multifon-00000054 is circuit-busy == Everyone is busy/congested at this time (1:0/1/0) ... == Spawn extension (all, h, 1) exited non-zero on 'SIP/900-00000053' loox*CLI> sip set debug off |
Я вижу, что
| Code: |
| SIP/2.0 403 Forbidden |
Но не могу понять, что поправить, вероятно где-то банально недосмотрел.
Чего ему (Мультифону/Астериску) не хватает?
Спасибо.
UPD. Хост/локалнет есть:
| Code: |
| nat=yes externhost=psychov.no-ip.org localnet=192.168.1.0/255.255.255.0 |
Транспорт пробовал, как UDP, так и TCP.
| Quote: |
| Чего ему (Мультифону/Астериску) не хватает? |
Пишет, что не собирается обслуживать этот вызов. Также пишет, что:
| Code: |
| Reason: Q.850;cause=55;text="Call Terminated" |
А если связаться с супортом мегафона?
Итоговая конфигурация:
| Code: |
| type=friend host=sbc.megafon.ru username=7926ххх secret=ххх insecure=invite fromdomain=multifon.ru fromuser=7926ххх disallow=all allow=g729,ulaw qualify=yes transport=tcp nat=yes dtmfmode=inband context=from-trunk canreinvite=no |
И самое главное:
tcp://7926ххх@multifon.ru:ххх: 7926ххх@sbc.megafon.ru/7926ххх
за что громадное спасибо и симпа Алексу http://alexkuklin.livejournal.com.
| Code: |
| register => 79301234567@multifon.ru:password:79301234567@sbc.megafon.ru:5060/79301234567 [megafon] insecure=port,invite type=peer tos=0x18 dtmfmode=inband relaxdtmf=yes username=79301234567 secret=password host=sbc.megafon.ru fromuser=79301234567 fromdomain=multifon.ru |
астериск 1.4 (эластикс)
register=79214468481@multifon.ru:XXX:79214468481@sbc.megafon.ru:5060/79214468481
username=79214468481
fromuser=79214468481
type=peer
secret=ххх
qualify=yes
nat=yes
insecure=port,invite
host=sbc.megafon.ru
fromdomain=multifon.ru
port=5060
context=multifon
canreinvite=yes
dtmfmode=inband
allow=all
смотрим дебаг!!!!
REGISTER 12 headers, 0 lines
Reliably Transmitting (NAT) to 193.201.229.35:5060:
REGISTER sip:ultifon.ru SIP/2.0 ---------------- ОТКУДА ЭТО????? почему sip:ultifon а не sip:multfon ???------------
Via: SIP/2.0/UDP x.x.x.x:8765;branch=z9hG4bK0de7870f;rport
From: ;tag=as05528e3f
To:
Call-ID: 766575c12ea2e75e7567a73a705078ba@216.207.245.33
CSeq: 102 REGISTER
User-Agent: "Planet VIP-156"
Max-Forwards: 70
Expires: 120
Contact:
Event: registration
Content-Length: 0
---
asterisk*CLI>
SIP/2.0 400 Bad Request
Via: SIP/2.0/UDP xxxx:8765;received=x.x.x.x;branch=z9hG4bK0de7870f;rport=8765
From: ;tag=as05528e3f
To: ;tag=039832463135364110BCF300
Call-ID: 766575c12ea2e75e7567a73a705078ba@216.207.245.33
CSeq: 102 REGISTER
Content-Length: 0
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP x.x.x.x:8765;received=x.x.x.x;branch=z9hG4bK146cb612;rport=8765
From: "Unknown" ;tag=as5520eaa5
To: ;tag=aprqngfrt-kqfsor00000c6
Call-ID: 51d3449659fa1dcb520b12b63653f3b1@x.x.x.x
CSeq: 102 OPTIONS
Reason: Q.850;cause=55;text="Call Terminated"
q.850 ошибка 55 означает что я не в группе нужных пользователей у провайдера.
т.е. я так понимаю не прошла авторизация
http://www.vegaassist.com/download/docs/ ... des_10.pdf
3-ий день воюю, не могу понять в чем проблемы.
| Code: |
| [general] 79XXXXXXXXX:@multifon.ru:5060/79XXXXXXXXX |
| Code: |
| [79XXXXXXXXX] defaultuser=79XXXXXXXXX fromuser=79XXXXXXXXX host=multifon.ru fromdomain=multifon.ru type=peer insecure=invite dtmfmode=inband disallow=all allow=alaw nat=yes secret= |
запрос что бы звонки принимались и на sip , и на GSM
| Code: |
| https://sm.megafon.ru/sm/client/routing/set?login=79XXXXXXXXX@multifon.ru&password=***&routing=2 |
работает 100% ставил не однократно.
делал как написано на Оф сайте .. полное фуфло и не рабочие...
http://www.multifon.ru/help/
_________________
Gentoo, Asterisk 1.8.5, GSM
Added after 33 minutes:
Сам попробовал на своем телефоне - качество хорошее!
Интересно, а у других операторов нечто подобное есть?
_________________
Внимание! Свет в конце тоннеля может быть светом фар приближающегося поезда!
Ubuntu 10.04/10.10 - Asterisk 1.6.2.20
Прикольная штука: Друзья моей жены звонят типа по месту, а попадают ко мне сюда в Баварию и всё абсолютно бесплатно и без какихто роумингов.
А пакет "Безлимитный Мультифон" позволяет звонить отсюда в Россию (на megafon_ural) почти на халяву (100 руб. в месяц за 2000 минут).
Вот как сделать так, чтобы астериск знал сколько из этих 2000 минут осталось?
Или кто-нибудь знает как заходить в сервис-гид не набирая captcha?
У других операторов к сожалению такого нету
| Quote: |
| Вот как сделать так, чтобы астериск знал сколько из этих 2000 минут осталось? |
У меня стоит + к мультифону GSM модем (на всякий вдруг инет упадет), можно послать USSD запрос о балансе ну и соответственно на ответ сделать скрипт
А второй вариант в базе вести статистику и при достижении, с транка мегафона, определенного кол-во минут вырубать его ну или ченить проигрывать.
_________________
Gentoo, Asterisk 1.8.5, GSM
| Code: |
| exten => ussd,1,NoOp(${SHELL(echo -n '${BASE64_DECODE(${USSD_BASE64})}' | iconv -f utf-8 -t koi8-ru):0:-1}) exten => ussd,n,Set(REST=${CUT(SHELL(echo -n '${BASE64_DECODE(${USSD_BASE64})}' | iconv -f utf-8 -t koi8-ru),:,1):50}) exten => ussd,n,ExecIF($[0${REST} > 99]?System(ssh -f -y -i /root/.ssh/id_rsa root@123.45.67.89 'asterisk -rx "database put megafon +79123456789 ${REST}:${EPOCH}"')) exten => ussd,n,Hangup() |
И чтобы модем не стоял только для этого, я вписал ещё одну фишку: приходит смс с просьбой о перезвоне, идёт callback
| Code: |
| exten => sms,1,GoSubIf($["${SHELL(echo '${BASE64_DECODE(${SMS_BASE64})}' | iconv -f utf-8 -t koi8-ru):8:2}"="+7"]?sms-callback,s,1) [sms-callback] exten => s,1,Set(NUMBER=${FILTER(0123456789,${SHELL(echo '${BASE64_DECODE(${SMS_BASE64})}' | iconv -f utf-8 -t koi8-ru):8:15})}) exten => s,n,ExecIf($[${DB_EXISTS(sms-callback/+${NUMBER})}]?Dial(callback...${NUMBER})) |
_________________
Внимание! Свет в конце тоннеля может быть светом фар приближающегося поезда!
Ubuntu 10.04/10.10 - Asterisk 1.6.2.20