İki Issabel arasında trunk: merkez ofis ile şubeyi bağlamak
Kategori: VoIP

Merkez ofisi ve şubesi olan bir kurum genellikle her lokasyonda bir Issabel santrali kurar. Bu iki sunucu birbirine bağlı değilse çalışanlar birbirleriyle konuşmak için dış hat kullanmak zorunda kalır. İki Issabel arasında bir trunk ile iki taraftaki dahililer yalnızca dahili numarayı çevirerek ücretsiz konuşur.

Bu makaledeki senaryo

  • Merkez ofiste Issabel A; adres 192.168.10.10, dahililer 1XX (örneğin 101–199)
  • Şubede Issabel B; adres 192.168.20.10, dahililer 2XX
  • İki lokasyon arasında ağ bağlantısı var; tercihen VPN ya da özel hat

Önemli koşul: İki sunucunun dahili numaraları çakışmamalıdır. İki sunucuda da 101 numaralı dahili varsa yönlendirme yapılamaz. Başlamadan önce numaralandırma planını belirleyin.

IAX2 mi, SIP mi?

İki Issabel arasındaki trunk hem SIP hem de IAX2 ile kurulabilir. Bu makalede IAX2’yi seçtik, çünkü:

  • Ses ve sinyalleşme tek bir porttan (UDP 4569) geçer; güvenlik duvarı ve NAT ayarları daha basittir.
  • Asterisk’in kendi protokolüdür ve iki Asterisk sunucusunu bağlamak için tasarlanmıştır.
  • trunk=yes seçeneğiyle eş zamanlı birden çok görüşme tek akışta birleştirilir ve daha az bant genişliği kullanılır.

Taraflardan biri Issabel değilse ya da ağ politikanız SIP ise aynı mantık SIP ile de uygulanabilir.

Adım 1: Issabel A’da trunk oluşturma

PBX menüsünden PBX Configuration’a, ardından Trunks’a girin ve Add IAX2 Trunk’a tıklayın.

  • Trunk Name: to-branch
  • Outbound CallerID: Boş bırakın; arayanın dahili numarası karşı tarafa ulaşsın.

Outgoing Settings bölümünde:

  • Trunk Name: branch
  • PEER Details:
host=192.168.20.10
username=hq
secret=Str0ng-Shared-Secret
type=peer
qualify=yes
trunk=yes
disallow=all
allow=alaw&ulaw

Incoming Settings bölümünde:

  • USER Context: branch (B sunucusunun username olarak gönderdiği ad)
  • USER Details:
secret=Str0ng-Shared-Secret
type=user
context=from-internal
disallow=all
allow=alaw&ulaw

Submit’e basın.

Adım 2: Issabel B’de trunk oluşturma

Aynı işlemi şube sunucusunda, adlar ve adres ters olacak şekilde yapın:

  • Trunk Name: to-hq
  • Outgoing Settings → Trunk Name: hq
  • PEER Details:
host=192.168.10.10
username=branch
secret=Str0ng-Shared-Secret
type=peer
qualify=yes
trunk=yes
disallow=all
allow=alaw&ulaw
  • Incoming Settings → USER Context: hq
  • USER Details:
secret=Str0ng-Shared-Secret
type=user
context=from-internal
disallow=all
allow=alaw&ulaw

secret iki sunucuda da birebir aynı olmalıdır. Uzun ve rastgele bir değer seçin.

Adım 3: Giden rota (Outbound Route)

Trunk tek başına yetmez; Issabel’a hangi numaraları trunk’a göndereceğini söylemelisiniz.

Issabel A’da Outbound Routes altında yeni bir rota oluşturun:

  • Route Name: to-branch
  • Dial Patterns: match pattern alanına 2XX yazın.
  • Trunk Sequence: to-branch trunk’ı

Issabel B’de de 1XX desenli ve to-hq trunk’lı bir rota oluşturun.

Şubeler arası rotayı Outbound Routes listesinde dış hat rotalarının üstüne taşıyın ki önce o kontrol edilsin. Sonunda iki sunucuda da Apply Config’e basın.

Adım 4: Güvenlik duvarı

Issabel güvenlik duvarı (Security → Firewall) ya da ağ güvenlik duvarı etkinse UDP 4569 portunu tüm internete değil, yalnızca karşı sunucunun adresine açın.

İki lokasyon internet üzerinden bağlıysa trunk’ı iki router arasındaki bir VPN (örneğin MikroTik üzerinde IPsec veya WireGuard) üzerinden kurun ve IAX2 portunu internete açmayın.

Adım 5: Test ve sorun giderme

Her sunucuda komut satırına girip Asterisk konsolunu açın:

asterisk -rvvv

Trunk durumuna bakın:

iax2 show peers

Trunk durumu OK ise ve yanıt süresi (milisaniye) görünüyorsa bağlantı kurulmuştur. Şimdi 101 numaralı dahiliden 201’i arayın.

Sık karşılaşılan sorunlar

  • UNREACHABLE durumu: Ağ bağlantısı yok ya da 4569 portu kapalı. ping ve güvenlik duvarı kontrolüyle başlayın.
  • Çağrı bağlanıp kopuyor ya da kimlik doğrulama hatası veriyor: İki taraftaki username, USER Context veya secret uyuşmuyor.
  • Tek yönlü ses: IAX2’de nadirdir; olursa iki lokasyon arasındaki NAT ve güvenlik duvarını kontrol edin.
  • Arama trunk’a gitmiyor: Outbound Route desenini kontrol edin ve daha genel desenli başka bir rotanın üstte olmadığından emin olun.

Context hakkında bir güvenlik notu

Bu örnekte context=from-internal kullandık; yani karşı sunucudan gelen çağrı, dış hatlara erişim dahil yerel bir dahiliyle aynı yetkilere sahiptir. Bu, birbirine tamamen güvenen ve VPN ile bağlı aynı kurumun iki ofisi için yaygındır. Şubenin merkez ofisin dış hatlarından arama yapmasını istemiyorsanız from-internal yerine from-trunk kullanıp dahililer için Inbound Route oluşturun ya da özel bir context tanımlayın.

İki IAX2 trunk, iki Outbound Route ve bir güvenlik duvarı kuralıyla iki Issabel sunucusu tek bir santral gibi çalışır. Aynı yöntem üç ya da daha fazla şubeye de genişletilebilir; yeter ki numaralandırma planı baştan doğru kurulmuş olsun.

  • Issabel
  • Asterisk
  • IAX2
  • Trunk
  • VoIP