Kas 11 2009

Opensips Çağrı Sürelerini Takip Edebilme

Category: SER,SIP,VoIPBayram Karagöz @ 13:10

Opensips default kurulum sonrasinda yapılan görüşmelerin detaylarını veritabanında tutmaz. Bunun yerine detaylar /var/log/messages altında gösterilir. Örneğin opensips servera register olan 1001 ve 1000 hesaplarında 1001->1000 araması yapıldığında aramanın detayları aşağıda gösterilmektedir.

Nov 11 11:48:25 opensips /usr/local/sbin/opensips[13852]: ACC: transaction answered: timestamp=1257932905;method=INVITE;from_tag=be6      5c152;to_tag=ca21b122;call_id=ZTMyYzAwMjllYTczYWQzZjNjZTQyMjQ0ODM3ZDViMDU.;code=200;reason=OK
Nov 11 11:48:25 opensips /usr/local/sbin/opensips[13855]: ACC: request acknowledged: timestamp=1257932905;method=ACK;from_tag=be65c1      52;to_tag=ca21b122;call_id=ZTMyYzAwMjllYTczYWQzZjNjZTQyMjQ0ODM3ZDViMDU.;code=200;reason=OK
Nov 11 11:48:32 opensips /usr/local/sbin/opensips[13854]: ACC: transaction answered: timestamp=1257932912;method=BYE;from_tag=ca21b1      22;to_tag=be65c152;call_id=ZTMyYzAwMjllYTczYWQzZjNjZTQyMjQ0ODM3ZDViMDU.;code=200;reason=OK

Buradaki timestamp parametresi isteklerin yapılma zamanlarını göstermektedir. Yukarıdaki örnekte yapılan aramada INVITE, ACK ve BYE isteklerinin zamanları gösterilmiştir. Yapılan bu görüşmedeki konuşma süresi BYE isteğinin süresinden ACK isteğinin süresinin çıkarılmasıyla bulunur. Fakat bundan da önce bu timestampler unix bazlı olduğu için bizim anlayabileceğimiz şekilde görmek amacıyla bu sitedeki Calculated UNIX Timestamp kısmına yazıp Reverse Calc yapmalıyız. Çok kolay değilmi? :)

Yukarıdaki anlattığım operasyon bize zor gelebilir. Bunun yerine Opensips Web Kontrol Paneli Kurulumu adlı makalemdeki CP yi kurup cdrviewer ayarlarını yaparak databaseden de bu aramanın detaylarını görebilirsiniz.
Alternatif başka bir yöntem olarak ta cdrtool programını opensips inize entegre edebilirsiniz.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Creator    Makaleyi PDF formatında gönder

Etiketler:


Kas 05 2009

Opensips Web Kontrol Paneli Kurulumu

Category: Apache,Gezegen,SER,SIP,VoIPBayram Karagöz @ 01:49

Opensips programını sunucuya yüklediğinizde hesap açma, register hesapları görme, cdr detaylarını görebilme ve daha birçok bilgiye ulaşabilmek amacıyla opensipsctl komutunu kullanabilirsiniz. Fakat konsoldan hiç hoşlanmıyorum diyorsanız php ile yazılmış arayüz opensips control paneli yüklemenizi tavsiye ederim. Üstelik bu muhtemeşem arayüz opensipsctl komutunun yapamadığı birçok şeyi de yapabilme yeteneğine sahip. Arayüzde 13 adet araç bulunmaktadır. Bunlar;

  • cdrviewer = yapılan arama detaylarının gösterildiği sayfadır.  Detaylı video eğitimini buradan indirebilirsiniz.
  • dialplan = opensips in aramaları yönlendirirken uyguladığı numara değişim kurallarının girildiği kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • domains = domainlerin girildiği kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • dispatcher = yönlendirme kurallarının girildiği kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • drouting = yönlendirilecek gatewaylerin ve yönlendirme kriterlerinin girildiği kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • loadbalancer = birçok opensips in loadbalancer olarak girilebilmesini sağlayacak kısımdır. DB ler senkronize edilebilir. detaylı bilgiye buradan ulaşabilirsiniz.
  • mi = management interface olarak adlandırılan bu kısım FIFO veya XMLRPC vasıtasıyla komut çalıştırabilmemizi sağlar. detaylı video eğitimini buradan indirebilirsiniz.
  • monit = monitoring servis olarak kullanılan, çoklu sip serverlarındaki sunucu durumları ve çalışan servislerin durumlarını gösteren kısımdır. detaylı video eğitimini buradan indirebilirsiniz.

NOT: monit menüsünün çalışabilmesi için opensips derleme aşamasında mi_xmlrpc modülü ile birlikte derlenmesi gerekmektedir. Eğer opensips kurulurken bu modül aktif edilmemiş ise make include_module=mi_xmlrpc komutu ile bu modülü derleyip kuralım.

  • nathelper = Çoklu sip serverlar üzerinde bulunabilecek RTPProxy lerin girildiği ve durumlarının gösterildiği kısımdır. RTPProxy ler NAT traversal problemini çözmek amacıyla oluşturulmuştur. detaylı video eğitimini buradan indirebilirsiniz.
  • pdt = kaynak domainden gelen aramaları prefixlerine göre yine istenilen domainlere gönderilmesini sağlayan kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • permissions = aramaların gönderilme izinlerinin ayarlandığı kısımdır. detaylı video eğitimini buradan indirebilirsiniz.
  • siptrace = yapılan aramaların  yönlendirme mesajlarını görsel olarak gösterebilen kısımdır. detaylı video eğitimini buradan indirebilirsiniz.

NOT: siptrace modülünün kullanılabilmesi için opensips için sip_trace tanımlamaları önceden yapılması gerekir. ayrıntılı bilgi için burayı inceleyin.

  • Statistic monitor = opensips serverın birçok modülünün istatistiklerini real time olarak veya geriye dönük gösterebilen kısımdır. detaylı video eğitimini buradan indirebilirsiniz.

NOT: smonitor uygulamasının çalışması da xmlrpc nin aktif edilmesine bağlıdır.

Şimdi opensips control panelinin ubuntu 9.04 serverımıza nasıl yükleyeceğimizi anlatacağım. Bu sunucuya opensips programının kendisinin kurulumunu

9 Adımda Ubuntu 9.04 Server’a Opensips 1.5.3 Kurulumu adlı makalemde anlatmıştım. Şimdi kaldığımız yerden devam ediyoruz.

  • Öncelikli olarak gerekli olan programlardan apache ve php yi yükleyelim;
# apt-get install apache2

apache yüklendikten sonra opensips control paneli indirip /var/www/ altına kopyalayalım.

# cd /opt/
# wget http://downloads.sourceforge.net/project/opensips-cp/opensips-cp/3.0/opensips-cp_3.0.tgz?use_mirror=garr
# tar xfvz opensips-cp_3.0.tgz
# cp -prv opensips-cp /var/www/

apache ayarlarından control panelini aktif etmek için tanımlama yapalım;

# vim /etc/apache2/sites-enabled/000-default

aşağıdaki ifadeyi mevcut Alias kısmının üstüne ekleyelim;

Alias /cp /var/www/opensips-cp/web

arayüzden girişlerin loglanabilmesi için aşağıdaki işlemi yapalım. Böylelikle giriş denemeleri access.log ta loglanacaktır.

chown www-data.www-data /var/www/opensips-cp/config/access.log
  • php5 i yükleyip php nin PEAR, MySQL ve XMLRPC desteğini sağlamalıyız;
# apt-get install php5
# apt-get install php5-mysql
# apt-get install php5-xmlrpc
# apt-get install php-pear
# pear install MDB2
# pear install MDB2#mysql
# pear install log
  • mysql database de birtakım işlemler yapmalıyız;

cdr tablosu ekleyelim;

# mysql -Dopensips -p < /var/www/opensips-cp/config/tools/cdrviewer/cdrs.mysql

acc tablosunda cdr oluşturacak bir mysql prosedürü oluşturalım;

#  mysql -Dopensips -p < /var/www/opensips-cp/config/tools/cdrviewer/opensips_cdrs_1_6.mysql

mysql için cdr oluşturulmasını sağlayacak cron_job/generate-cdrs_mysql.sh dosyasını kendi veritabanımızda

kullanıcı adı,şifre,host ve veritabanı adı na göre konfigüre edelim.

# vim /var/www/opensips-cp/cron_job/generate-cdrs_mysql.sh

kendi örneğimizde parolayı ve call opensips_cdrs_1_5() parametresini aşağıdaki gibi değiştiriyoruz.

PASS="opensipsrw"

call opensips_cdrs_1_6();

3 dakika aralıklarla bu scripti çalıştırmayı sağlayacak crontab girdisini yazalım(crontab -e);

*/3 * * * * root /var/www/opensips-cp/cron_job/generate-cdrs_mysql.sh

smonitor modülünün çalışabilmesi için veritabanına aşağıdaki girişi yapalım;

# mysql -Dopensips -p < /var/www/opensips-cp/config/tools/smonitor/tables.mysql

smonitor ün opensips serverlardaki bilgileri 1 dakika aralıklarla alıp gösterebilmesi için crontaba aşağıdaki girişi yapalım(crontab -e);

* * * * *  root   php /var/www/opensips-cp/cron_job/get_opensips_stats.php > /dev/null

/var/www/opensips-cp/config/db.inc.php dosyasındaki veritabanı bağlantı elemanlarını kontrol edelim. parolamız farklı ise değiştirelim.

tüm kurulum işlemleri tamamlandıktan sonra sunucuya bir restart atıp arayüze http://sunucu_ipsi/cp yazdığımızda aşağıdaki login ekranıyla karşılaşıp admin/admin ile giriş yapabilirsiniz.

İşte kurulum buraya kadar. Artık bu muhteşem arayüzün keyfini çıkarabilirsiniz…

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF    Makaleyi PDF formatında gönder

Etiketler: ,


Kas 04 2009

Opensips Üzerinden SRTP ( Secure Real Time Protocol ) Testleri

Category: SER,SIP,VoIPBayram Karagöz @ 18:30

İş VoIP olunca ve bu görüşmelerde internet üzerinden olunca akla ilk gelen sorulardan birisi görüşmelerin dinlenmesi mevzusudur. İşte tamda bu noktada SRTP işin içerisine girmektedir. Güvenli VoIP görüşmeleriyle alakalı yakında detaylı bir makale yazıp sizlerle paylaşmayı düşünüyorum. Fakat şimdi bunun da ötesine giderek SRTP ile yaptığım bir görüşmenin detaylarını inceleyelim.

opensips kurulu linux servera ngrep yüklüyorum ve yaptığım çağrıların loglarını inceliyorum.

# apt-get install ngrep

kurulum tamamlandıktan sonra;

# ngrep -p -q -W byline port 5060

komutunu çalıştırarak logları takip ediyorum.

opensips serverda 100 kullanıcı adına eyebeam softphone register edip 101 kullanıcısına da grandstream ip phone register ederek yapılan aramanın loglarına bakıyorum;

aramanın tüm loglarını aşağıda görebilirsiniz;

# ngrep -p -q -W byline port 5060
interface: eth0 (10.0.10.0/255.255.255.0)
filter: (ip or ip6) and ( port 5060 )

U 10.0.10.118:63730 -> 10.0.10.237:5060
INVITE sip:101@10.0.10.237 SIP/2.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport.
Max-Forwards: 70.
Contact: <sip:100@10.0.10.118:63730>.
To: "101"<sip:101@10.0.10.237>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.
Content-Type: application/sdp.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 580.
.
v=0.
o=- 7 2 IN IP4 10.0.10.118.
s=CounterPath eyeBeam 1.5.
c=IN IP4 10.0.10.118.
t=0 0.
m=audio 24890 RTP/SAVP 107 0 8 18 101.
a=alt:1 3 : sitJQlHf Ov/HWtyn 10.0.10.118 24890.
a=alt:2 2 : INjSJf9L BxWT4Cqj 192.168.29.1 24890.
a=alt:3 1 : MhWPoocz RczjackL 192.168.245.1 24890.
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:YYBmgYduz3u0u4rSVHR/x6BXVWNCWeqDmyw8ZRL6.
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:A0ZxonBpfaUnRkQoqOp5B+LehBMzCVqbFyD6v0TU.
a=fmtp:18 annexb=yes.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:18 G729/8000.
a=rtpmap:101 telephone-event/8000.
a=sendrecv.

U 10.0.10.237:5060 -> 10.0.10.118:63730
SIP/2.0 100 Giving a try.
Via: SIP/2.0/UDP 10.0.10.118:63730;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
To: "101"<sip:101@10.0.10.237>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
Server: OpenSIPS (1.5.3-notls (x86_64/linux)).
Content-Length: 0.
.

U 10.0.10.237:5060 -> 10.0.10.15:5070
INVITE sip:101@10.0.10.15:5070;transport=udp SIP/2.0.
Record-Route: <sip:10.0.10.237;lr=on>.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bK7c99.a9bf07a1.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
Max-Forwards: 69.
Contact: <sip:100@10.0.10.118:63730>.
To: "101"<sip:101@10.0.10.237>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.
Content-Type: application/sdp.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 580.
.
v=0.
o=- 7 2 IN IP4 10.0.10.118.
s=CounterPath eyeBeam 1.5.
c=IN IP4 10.0.10.118.
t=0 0.
m=audio 24890 RTP/SAVP 107 0 8 18 101.
a=alt:1 3 : sitJQlHf Ov/HWtyn 10.0.10.118 24890.
a=alt:2 2 : INjSJf9L BxWT4Cqj 192.168.29.1 24890.
a=alt:3 1 : MhWPoocz RczjackL 192.168.245.1 24890.
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:YYBmgYduz3u0u4rSVHR/x6BXVWNCWeqDmyw8ZRL6.
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:A0ZxonBpfaUnRkQoqOp5B+LehBMzCVqbFyD6v0TU.
a=fmtp:18 annexb=yes.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:18 G729/8000.
a=rtpmap:101 telephone-event/8000.
a=sendrecv.

U 10.0.10.15:5070 -> 10.0.10.237:5060
SIP/2.0 100 Trying.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bK7c99.a9bf07a1.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
To: "101"<sip:101@10.0.10.237>.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Content-Length: 0.
.

U 10.0.10.15:5070 -> 10.0.10.237:5060
SIP/2.0 180 Ringing.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bK7c99.a9bf07a1.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
Record-Route: <sip:10.0.10.237;lr=on>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Contact: <sip:101@10.0.10.15:5070;transport=udp>.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Content-Length: 0.
.

U 10.0.10.237:5060 -> 10.0.10.118:63730
SIP/2.0 180 Ringing.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
Record-Route: <sip:10.0.10.237;lr=on>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Contact: <sip:101@10.0.10.15:5070;transport=udp>.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Content-Length: 0.
.

U 10.0.10.15:5070 -> 10.0.10.237:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bK7c99.a9bf07a1.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
Record-Route: <sip:10.0.10.237;lr=on>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Contact: <sip:101@10.0.10.15:5070;transport=udp>.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Content-Type: application/sdp.
Supported: replaces, timer.
Content-Length: 291.
.
v=0.
o=101 8000 8000 IN IP4 10.0.10.15.
s=SIP Call.
c=IN IP4 10.0.10.15.
t=0 0.
m=audio 5072 RTP/SAVP 0 101.
a=sendrecv.
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:1qu3biiIY6/ePz4TrdDdroT0XXoJcN6sS40bbs/O.
a=rtpmap:0 PCMU/8000.
a=ptime:20.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-11.

U 10.0.10.237:5060 -> 10.0.10.118:63730
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-69501e59f058044c-1---d8754z-;rport=63730.
Record-Route: <sip:10.0.10.237;lr=on>.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 INVITE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Contact: <sip:101@10.0.10.15:5070;transport=udp>.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Content-Type: application/sdp.
Supported: replaces, timer.
Content-Length: 291.
.
v=0.
o=101 8000 8000 IN IP4 10.0.10.15.
s=SIP Call.
c=IN IP4 10.0.10.15.
t=0 0.
m=audio 5072 RTP/SAVP 0 101.
a=sendrecv.
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:1qu3biiIY6/ePz4TrdDdroT0XXoJcN6sS40bbs/O.
a=rtpmap:0 PCMU/8000.
a=ptime:20.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-11.

U 10.0.10.118:63730 -> 10.0.10.237:5060
ACK sip:101@10.0.10.15:5070;transport=udp SIP/2.0.
Via: SIP/2.0/UDP 10.0.10.118:63730;branch=z9hG4bK-d8754z-394bad653c6d521e-1---d8754z-;rport.
Max-Forwards: 70.
Route: <sip:10.0.10.237;lr>.
Contact: <sip:100@10.0.10.118:63730>.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 ACK.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 0.
.

U 10.0.10.118:63730 -> 10.0.10.237:5060
.
.
..............

U 10.0.10.237:5060 -> 10.0.10.15:5070
ACK sip:101@10.0.10.15:5070;transport=udp SIP/2.0.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bK7c99.a9bf07a1.2.
Via: SIP/2.0/UDP 10.0.10.118:63730;received=10.0.10.118;branch=z9hG4bK-d8754z-394bad653c6d521e-1---d8754z-;rport=63730.
Max-Forwards: 69.
Contact: <sip:100@10.0.10.118:63730>.
To: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
From: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 1 ACK.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 0.
.

U 10.0.10.15:5070 -> 10.0.10.237:5060
BYE sip:100@10.0.10.118:63730 SIP/2.0.
Via: SIP/2.0/UDP 10.0.10.15:5070;branch=z9hG4bK1efbbbcb007e8d49.
Route: <sip:10.0.10.237;lr=on>.
From: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
To: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Supported: path.
X-Grandstream-PBX: true.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 8448 BYE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Max-Forwards: 70.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Reason: SIP ;text="Onhook event".
Content-Length: 0.
.

U 10.0.10.237:5060 -> 10.0.10.118:63730
BYE sip:100@10.0.10.118:63730 SIP/2.0.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bKabc2.fde9df6.0.
Via: SIP/2.0/UDP 10.0.10.15:5070;branch=z9hG4bK1efbbbcb007e8d49.
From: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
To: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
Supported: path.
X-Grandstream-PBX: true.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 8448 BYE.
User-Agent: Grandstream GXP2020 1.2.2.14.
Max-Forwards: 69.
Allow: INVITE,ACK,CANCEL,BYE,NOTIFY,REFER,OPTIONS,INFO,SUBSCRIBE,UPDATE,PRACK,MESSAGE.
Reason: SIP ;text="Onhook event".
Content-Length: 0.
.

U 10.0.10.118:63730 -> 10.0.10.237:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.0.10.237;branch=z9hG4bKabc2.fde9df6.0.
Via: SIP/2.0/UDP 10.0.10.15:5070;branch=z9hG4bK1efbbbcb007e8d49.
Contact: <sip:100@10.0.10.118:63730>.
To: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
From: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 8448 BYE.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 0.
.

U 10.0.10.237:5060 -> 10.0.10.15:5070
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.0.10.15:5070;branch=z9hG4bK1efbbbcb007e8d49.
Contact: <sip:100@10.0.10.118:63730>.
To: "100"<sip:100@10.0.10.237>;tag=5519ba6d.
From: "101"<sip:101@10.0.10.237>;tag=482a0e6c73279ef6.
Call-ID: NjI1ZjNlNWY1Y2VmMGQ4ZTQwODFmNGEwOWIxMmM5ODM..
CSeq: 8448 BYE.
User-Agent: eyeBeam release 1102q stamp 51814.
Content-Length: 0.

Burada dikkati çekmek istediğim nokta loglardaki SDP paketlerindeki crypto kısımlarını incelemenizdir.

a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:YYBmgYduz3u0u4rSVHR/x6BXVWNCWeqDmyw8ZRL6.
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:A0ZxonBpfaUnRkQoqOp5B+LehBMzCVqbFyD6v0TU.

SDP kısmındaki crypto headerlarının bulunması aramanın şifrelenmiş olduğunu gösterir.

Yazının devamı gelecektir.



VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Create PDF    Makaleyi PDF formatında gönder

Etiketler: ,


Kas 03 2009

9 Adımda Ubuntu 9.04 Server’a Opensips 1.5.3 Kurulumu

Category: Gezegen,SER,SIP,VoIPBayram Karagöz @ 18:16

logo

Merhaba VoIP Meraklıları,

OPENSIPS, voip platformlarında registrar ve sip proxy server olarak kullanılabilen ve carrier-grade düzeyde çok hızlı çalışan bir uygulamadır. Sizde kendi evinizde veya işyerinizde bu yazılımı kullanarak yazılımsal telefonlar ( softphone) veya ip cihazları ile haberleşebilir istediğiniz kadar konuşabilirsiniz. Hemde bedava :) . İşte bu makalemizde bu muhteşem yazılımın kurulumunu aşama aşama anlatacağız. Kurulum vmware server üzerinde yapılmıştır.

1- ubuntu 9.04 server kurulumu yapılır

konumuz dışı olduğu için bu kurulumu anlatmadım. Fakat http://www.howtoforge.com/perfect-server-ubuntu-9.04-ispconfig-2 linkindeki sadece ubuntu server kurulumunu bu aşamada kullanabilirsiniz.

2- uzaktan erişim için OpenSSH kurulum yapılır

ubuntu kurulumu yaptıktan sonra ana terminalden işlemlere devam etmeyi hiç sevmediğimden openssh tan vazgeçmiyorum. sizinde kurmanızı tavisye ederim.

3- opensips 1.5.3 versiyonu indirilir

http://sourceforge.net/projects/opensips/files/ adresinden opensips in versiyonlarını bulabilirsiniz. Bu dökümanda hazırlanırken en son 1.6 versiyonu çıkmış olmasına rağmen kararlı sürüm olan 1.5.3 u kurmayı tercih ediyorum.

# cd /opt/
# wget http://downloads.sourceforge.net/project/opensips/OpenSIPS/1.5.3/
opensips-1.5.3-notls_src.tar.gz?use_mirror=garr

4- bağımlılıklar kontrol edilir öncelikli olarak yüklenmesi gereken programlar varsa yüklenir

opensips in yüklenebilmesi için gerekli olan programlar ve gereklilik sebepleri  http://opensips.svn.sourceforge.net/viewvc/opensips/trunk/INSTALL linkinde anlatılmıştır. Bu bilgilere göre bize gerekli olan programları kuralım;

# apt-get install bison
# apt-get install gcc
# apt-get install flex
# apt-get install libsctp1
# apt-get install mysql-server
# apt-get install libmysqlclient15-dev
# apt-get install libxml2-dev
# apt-get install libexpat1-dev
# apt-get install libradiusclient-ng2 libradiusclient-ng-dev
# apt-get install libxmlrpc-c3 libxmlrpc-c3-dev
# apt-get install libperl-dev
# apt-get install libsnmp-dev
# apt-get install libconfuse0 libconfuse-dev
# apt-get install build-essential

5- opensips derleme ve kurulumu yapılır

derleme evresinde opensips in tüm modüllerini aktif edip derliyorum. İsterseniz  http://opensips.svn.sourceforge.net/viewvc/opensips/trunk/INSTALL adresindeki derleme yönergelerine göre sadece kullanacağınız modülleri derleyip kurabilirsiniz.

# cd /opt/
# tar xfvz opensips-1.5.3-notls_src.tar.gz
# cd opensips-1.5.3-notls

Makefile dosyasında opensips ile birlikte yüklenmesini istediğiniz modülleri teker teker seçelim. Bu örneğimizde mi_xmlrpc, xcap_client, presence, presence_xml, presence_mwi, presence_dialoginfo, pua, pua_bla, pua_mi, pua_usrloc, pua_xmpp,  pua_dialoginfo modülleri yükleneceği için aşağıdaki işlemler yapılacaktır;

Makefile dosyasının exclude_modules kısmından yüklenmesini istediğimiz modülleri çıkarıyoruz;

# vi Makefile

– jabber
- cpl-c
- xmpp
- rls
- mi_xmlrpc
- xcap_client
- db_mysql
- presence
- presence_xml
- presence_mwi
- presence_dialoginfo
- pua
- pua_bla
- pua_mi
- pua_usrloc
- pua_xmpp
- pua_dialoginfo
- perl
- snmpstats
- peering
- carrierroute

derleyip kurulum işlemine geçiyoruz.

# make prefix=/usr/local
# make prefix=/usr/local install

6- programı aktif edebilmek için birtakım ayarlamalar yapılır

# cp -prv packaging/debian-etch/opensips.default /etc/default/opensips
# cp -prv packaging/debian-etch/opensips.init /etc/init.d/opensips
# vim /etc/default/opensips

RUN_OPENSIPS=no kısmını RUN_OPENSIPS=yes olarak değiştirelim.

# vim /etc/init.d/opensips

DAEMON=/usr/sbin/opensips
RUN_OPENSIPS=no

olan kısımları

DAEMON=/usr/local/sbin/opensips
RUN_OPENSIPS=yes

olarak değiştirelim.

/etc/opensips/opensips.cfg

olan kısmı

/usr/local/etc/opensips/opensips.cfg

olarak değiştirelim.

# chmod +x /etc/init.d/opensips
# update-rc.d opensips default
# groupadd opensips
# useradd -g opensips opensips
# chmod 777 /usr/local/etc/opensips/

# vim /usr/local/etc/opensips/opensipsctlrc

aşağıdaki satırlaraki # işaretlerini kaldırın;

 # SIP_DOMAIN=opensips.org
 # DBENGINE=MYSQL
 # DBHOST=localhost
 # DBNAME=opensips
 # DBRWUSER=opensips
 # DBRWPW=”opensipsrw”
 # DBROUSER=opensipsro
 # DBROPW=opensipsro
 # DBROOTUSER=”root”
 # USERCOL=”username”
 # INSTALL_EXTRA_TABLES=ask
 # INSTALL_PRESENCE_TABLES=ask
 # PID_FILE=/var/run/opensips.pid

7- veritabanı ile birlikte işlerliğin aktif edilmesi ( isteğe bağlı )

istendiği takdirde opensips e register olacak hesapların bilgilerinin tutulması veya arama detayları gibi bilgilerin kaydedilmesini istiyorsanız mysql de opensips için veritabanı oluşturalım.

# mysqladmin -u root password ‘root’
# mkdir /usr/local/share/opensips/mysql
# cp -rpv /opt/opensips-1.5.3-notls/scripts/mysql/* /usr/local/share/opensips/
# opensipsdbctl create

opensips konfigürasyon dosyasında mysql ile haberleşme için gerekli işlemleri yapalım;

# vim /usr/local/etc/opensips/opensips.cfg

aşağıdaki satırlardaki # işaretini kaldıralım;

#loadmodule “db_mysql.so”
#loadmodule “auth.so”
#loadmodule “auth_db.so”
#modparam(“usrloc”, “db_mode”,   2)
#modparam(“usrloc”, “db_url”,
#	“mysql://opensips:opensipsrw@localhost/opensips”)

#modparam(“auth_db”, “calculate_ha1″, yes)
#modparam(“auth_db”, “password_column”, “password”)
#modparam(“auth_db”, “db_url”,
#	“mysql://opensips:opensipsrw@localhost/opensips”)

aşağıdaki satıra # ekleyelim;

modparam(“usrloc”, “db_mode”,   0)

veritabanına erişim için opensips kullanıcısının haklarını verelim;

# mysql -u root -p
 mysql> GRANT ALL PRIVILEGES ON *.* TO opensips@localhost IDENTIFIED BY ‘opensipsrw’;
 mysql> GRANT ALL PRIVILEGES ON *.* TO opensips@127.0.0.1 IDENTIFIED BY ‘opensipsrw’;

8- opensips programını başlatalım

aşağıdaki komutlardan birisi ile opensips i başlatalım;

# opensipsctl start
# /etc/init.d/opensips start

9- test için hesap oluşturalım

aşağıdaki komut vasıtası ile 1001 kullanıcı adına ve 1001 parolasına sahip bir kullanıcı oluşturup softphone veya ip cihazı ile deneme yapabiliriz.

# opensipsctl add 1001 1001

Kaynaklar :

http://vidodz.wordpress.com/2009/07/28/install-opensips-on-debian-or-ubuntu/
http://opensips.svn.sourceforge.net/viewvc/opensips/trunk/INSTALL
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Printer    Makaleyi PDF formatında gönder

Etiketler: , , , , , ,


Eki 08 2008

pre_auth(): Credentials received are not filled properly

Category: SERBayram Karagöz @ 11:50

SER’de bu hatanın gelmesinin sebebi authentication problemi ile alakalıdır.

sent to client:
WWW-Authenticate: Digest realm="zettou.net",
nonce="3f5e52fd5db948e3b493525f89fe24bfd0f86d9e", qop="auth"


sent from client:
Authorization: Digest username="jakob@xxxxxxxxxxxx",
realm="zettou.net",uri="sip:schlyter.net",
response="8503ab9b93e73ef0033d0e265f31dd0f",
nonce="3f5e52fd5db948e3b493525f89fe24bfd0f86d9e",
cnonce="718436df",qop=auth,nc=00000001,algorithm=md5

üstteki register isteği incelendiğinde username içerisindeki domain kısmının realm ile aynı olması gerekmektedir. bu durumun tersinde bahsettiğimiz hata mesajı alınır.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Printer    Makaleyi PDF formatında gönder