Bu şartname; Sistemnet SN Serisi yazılımlarının (SNCDR, SNTRM, SNSR, SNPMS, SNMASKE) aşağıdaki santral/PBX sistemleriyle çağrı verisi (CDR/SMDR), ajan durumu (Agent Event) ve gerçek zamanlı çağrı kontrolü (CCT) entegrasyonlarının teknik gereksinimlerini tanımlar:
| Santral | Sürüm (min) | Veri Kaynağı | Protokol |
|---|---|---|---|
| Avaya Communication Manager | CM 6.3+ | CDR via SAT | TCP 5051 (unsecure) / TLS |
| Cisco Unified CCE / CUCM | CUCM 12.5+ | CDR via SFTP + CCT AXL | SFTP 22, AXL/SOAP 8443 |
| Tegsoft | v4+ | REST API + AMQP event | HTTPS 443, AMQP 5672/5671 |
| Alcatel-Lucent OmniPCX (OXO/OXE) | OXE 11+ | CDR via TSA + CSTa | TCP 2533 (CSTA), CDR serial/TCP |
| Ericsson-LG iPECS | iPECS-LIK/eMG80+ | SMDR via TCP | TCP 5005 (ascii) |
| Nortel CS1000 / Avaya Aura | CS1000 7.5+ | CDR via ELAN + RDB | TCP 23 (ELAN) / Syslog |
┌──────────────┐ CDR/SMDR (TCP) ┌──────────────────┐ HTTPS/WSS ┌─────────────┐
│ PBX / Santral│ ─────────────────▶ │ SN Collector │ ────────────▶ │ SN Uygulamaları│
│ (6 üretici) │ Agent Event │ (Linux svc) │ REST API │ SNCDR/SNTRM │
└──────────────┘ ◀───────────────── │ Port: 9000/tcp │ ◀──────────── │ SNSR/SNPMS │
▲ CST kontrol └──────────────────┘ PostGres │ SNMASKE │
│ ┌──────────────────┐ └─────────────┘
└──── Oracle/PostGres ──────│ SN DB (ops.) │
(Nortel RDB, CUCM) └──────────────────┘
SN Collector: Her santral için ayrı "connector" servisi çalıştıran merkezi toplama katmanı.
Santral protokolünü normalize edip standart CallEvent JSON'una çevirir; SN uygulamalarına
REST/WebSocket ile dağıtır. Kayıp olay için yerel spool dizini (disk kuyruğu) kullanır.
Hedef: CM'den gerçek zamanlı CDR akışı almak. Avaya, CDR'ı SAT (System Access Terminal) üzerinden
TCP 5051'e (sadece unsecure; önerilen: ip-interface ile TLS) gönderir.
PBX tarafında yapılacaklar (SAT komutları):
change ip-services
Service Type: CDR1 Server: cli Port: 5051 Local Node: procr
Reliable: y Session: cdc Peer: <SN-Collector-IP>
change system-parameters cdr
Primary CDR Output Format: 'unformatted'
Digits to Cover for CDR: 15
Record Type 1: all-calls Record Type 2: none
change ip-node procr
IP Address: <CM-sunucu-IP> Subnet: ...
# CDR kayıtlarında ek alanlar için:
change cdr-field-sizing → Record Length: 'flexible'
SN Collector tarafı: avaya-cdr-listener servisi TCP 5051'de dinler (veya CM'nin
connect olduğu sunucu olarak çalışır — Reliable Session modunda SN Collector sunucu, CM istemcidir).
| Alan (unformatted) | Offset | Uzunluk | Anlam |
|---|---|---|---|
| Call Start (epoch) | 0 | 10 | Aramanın başlangıcı |
| Call Duration | 10 | 6 | Saniye |
| Calling Number | 16 | 15 | Arayan numara (ANI) |
| Called Number | 31 | 15 | Aranan numara (DNIS) |
| Acc Code / Auth Code | 46 | 16 | Yetki kodu |
| In Trunk ID | 62 | 6 | Gelen trunk kimliği |
| Out Trunk ID | 68 | 6 | Giden trunk kimliği |
| VDN / VDN Name | 74 | 7+20 | VDN ve adı (Çağrı merkezi) |
Hedef: Çağrı kayıtları CUCM'den CDR Repository üzerinden SFTP ile çekilir; canlı ajan/çağrı durumu için CCT (Computer Telephony Integration) API'si veya AXL/SOAP kullanılır.
CUCM tarafında yapılacaklar (Cisco Unified Serviceability):
1) CDR Billing Application Server tanımı:
Serviceability → Tools → CDR Management → Add New
Host: <SN-Collector-IP> User: sncdr Path: /cdr Protocol: SFTP
2) CDR parametreleri (Enterprise Parameters):
CDR Enabled Flag: True
CDR Log Calls with Zero Duration Flag: True
Call Diagnostics Enabled: True (media hataları için)
3) AXL kullanıcı yetkisi (canlı kontrol için):
User Management → Application User: snaxl → Role: Standard AXL API Access
SN Collector tarafı: cisco-cdr-poller servisi SFTP ile /cdr/CDR_* dosyalarını
çekip JSON'a çevirir (Cisco CDR, virgülle ayrılmış 200+ alanlı flat dosyadır). AXL ile getPhone,
getLine sorguları yapılarak dahili → ajan eşlemesi yapılır.
Hedef: Tegsoft kendi REST API'sini ve AMQP event bus'ını sunar — en kolay entegrasyon.
# Tegsoft API erişimi:
POST https://<tegsoft-server>/api/v1/auth/login
{ "user": "snsvc", "pass": "***" } → JWT token
# CDR/Event çekme:
GET /api/v1/cdr?from=2026-09-01&to=2026-09-30 (Bearer JWT)
GET /api/v1/agents/state (canlı ajan durumu)
# AMQP aboneliği (gerçek zamanlı):
Host: <tegsoft-server> Port: 5672 (TLS: 5671) vhost: tegsoft
Queue: sn.events Routing: call.*.agent.*
SN Collector tarafı: tegsoft-connector servisi hem REST polling (5 dk) hem AMQP aboneliği
(canlı) çalıştırır; olaylar normalize edilip SNCDR'a aktarılır.
Hedef: OXE'nin CSTA (Computer Supported Telecom Applications) API'si ile canlı çağrı kontrolü; CDR için TSA (Telephony System Administration) üzerinden IP CDR.
# OXE 4635/4760 konsolundan (installation → software management):
# 1) CSTA link açma:
cgroscope → create csta_link <SN-Collector> port 2533 protocol cstaa
# 2) CDR tanımı:
cdractions → create cdr_output format: 'extended' to: <SN-Collector> port 2533
# 3) Ajan/extension bilgisi:
create pbx_extension_list → export to sncollector (FTP 21, /usr1/ODAT)
Not: OXE'de CDR formatı "extended" seçildiğinde 42 alanlı sabit genişlikte ASCII blok gönderilir;
SN Collector alcatel-cdr-parser bunu parse eder. CSTA linki TCP 2533'te CSTA Phase 3
protokolüyle çalışır (SN Collector'ın csta-js/wrapper kütüphanesi bunu destekler).
Hedef: iPECS'in SMDR çıkışını TCP üzerinden almak. iPECS'te SMDR ASCII satır tabanlıdır ve web yönetiminden aktive edilir.
# iPECS Web Admin (http://<pbx-ip>):
1) System → SMDR:
SMDR Output: Enable
Protocol: TCP/IP
TCP Port: 5005
SMDR Format: "Standard" veya "Detailed"
Include Internal Calls: Yes
Time Source: PBX
2) System → IP Settings:
SMDR Destination IP: <SN-Collector-IP>
Destination Port: 9000 (SN Collector dinler)
SN Collector tarafı: ipeccs-smdr-listener TCP 9000'de satır satır gelen SMDR'ı parse eder.
Standart format: tarih(8) saat(6) süre(5) trunk(3) dahili(5) arayan(15) aranan(15) durum(2) — toplam 59 byte.
Hedef: CS1000'in ELAN (Element Manager Network Access) terminal çıkışı veya Oracle/PostGres RDB üzerinden tarihsel CDR. Canlı akış için Syslog/CDR over TCP tercih edilir.
# CS1000 LD 117 (CDR konfigürasyonu):
LD 117
REQ: new CDR: yes
FCD: 1 (Format: 1 — standard, 2 — enhanced)
PORT: <SN-Collector-IP> 5005
TRC: 30 (trace süresi)
# ELAN bağlantısı (Element Manager):
ELM → Network → SN-Collector:23 (telnet mod) → terminal export
Not: Nortel'de telnet tabanlı CDR kullanımı 2017 sonrası deprecated;
mümkünse Avaya Aura CM migration veya PostGres RDB polling (SQL: SELECT * FROM NRC quieter)
kullanılmalıdır. SN Collector nortel-rdb-poller 5 dk'da bir incremental sorgu yapar.
Tüm connector'lar çıktıyı şu şemaya normalize eder — SN uygulamaları yalnızca bu şemayı tüketir:
{
"event_id": "uuid-v4",
"pbx_type": "avaya_cm | cisco_cucm | tegsoft | alcatel_oxe | ipecs | nortel_cs1000",
"pbx_id": "musteri-adi-site-kodu",
"call_id": "pbx-nin-verdiği-benzersiz-id",
"direction": "inbound | outbound | internal",
"caller": "05321234567",
"called": "4440542",
"agent_ext": "2001",
"agent_name": "Elif Kaya",
"started_at": "2026-09-21T10:15:22+03:00",
"answered_at":"2026-09-21T10:15:30+03:00",
"ended_at": "2026-09-21T10:18:02+03:00",
"wait_sec": 8,
"dur_sec": 152,
"hold_sec": 0,
"transfer_of":null,
"recording": true,
"disposition":"answered | abandoned | busy | no-answer | failed",
"raw": { /* üreticiye özgü ham alanlar */ }
}
| Uygulama | Tüketilen Veri | Entegrasyon Etkisi |
|---|---|---|
| SNCDR | CallEvent (tümü) | Gerçek çağrı kayıtları listeye düşer; saatlik grafik ve CSV canlı veriyle çalışır. |
| SNTRM | CallEvent + recording URL | Ajan listesi otomatik; değerlendirme ekranında "dinle" ile kayıt oynatıcı açılır. |
| SNSR | Ajan oturum eventi | Ajan giriş yaptığında ekran yakalama otomatik başlar (config'e bağlı). |
| SNPMS | Extension ↔ oda eşlemesi | Misafir aradığında rezervasyon popup'ı; oda hatlarına maskeleme kuralı. |
| SNMASKE | CallEvent.caller | Maskeleme tüm CRM/popup ekranlarında uygulanır; günlüğe kanal bilgisi yazılır. |
| Kaynak | Hedef | Port | Protokol | Yön |
|---|---|---|---|---|
| SN Collector | Avaya CM | 5051/TCP | CDR session | ◀ (CM→Collector) veya ↔ |
| SN Collector | Cisco CUCM | 22/TCP, 8443/TCP | SFTP, AXL | Collector→CUCM |
| SN Collector | Tegsoft | 443, 5671/TCP | HTTPS, AMQPS | Collector→Tegsoft |
| Alcatel OXE | SN Collector | 2533/TCP | CSTA Phase 3 | OXE→Collector |
| iPECS | SN Collector | 9000/TCP | SMDR ASCII | iPECS→Collector |
| Nortel CS1000 | SN Collector | 5005/TCP | CDR over TCP | CS1000→Collector |
| SN uygulamaları | SN Collector | 9000/TCP (WSS 9443) | REST/WS | App→Collector |
ip-interface TLS, Tegsoft için AMQPS). ④ Collector servis kullanıcısı salt-okunur PBX
yetkisine sahiptir (ör. Cisco'da sadece "Standard AXL API Access" role).| Ölçek | Eşzamanlı Çağrı | Günlük CDR | Collector Donanım |
|---|---|---|---|
| Küçük | ≤ 50 | ≤ 5.000 | 2 vCPU / 4 GB RAM / 100 GB SSD |
| Orta | ≤ 300 | ≤ 50.000 | 4 vCPU / 8 GB RAM / 500 GB SSD (RAID1) |
| Büyük | ≤ 2.000 | ≤ 500.000 | 8 vCPU / 16 GB RAM / 2 TB NVMe + PG replica |
Gecikme hedefi: Çağrı bitimi → SNCDR listesinde görünme: < 5 saniye (AMQP/CSTA canlı akışta), < 10 dakika (SFTP polling modellerinde).
tcpdump/nc ile port erişimi test edildi.| # | Test | Beklenen | Yöntem |
|---|---|---|---|
| 1 | CDR akışı | Dahili-dahili çağrı < 5 sn içinde SNCDR'da görünür | Test çağrısı yap → SNCDR listesini yenile |
| 2 | Dış arama | Giden çağrı trunk ve numara doğru kaydedilir | Mobil telefona ara → kayıt eşleştir |
| 3 | Kaçan çağrı | Ring-answer olmayan çağrı "Kaçtı" rozetiyle listelenir | Cevapsız bırak |
| 4 | Ajan eşlemesi | Extension → ajan adı doğru görünüyor | 2 farklı ajanla çağrı aç |
| 5 | SNTRM dinleme | Kayıtlı çağrıda "Dinle" oynatıcı çalışıyor | Değerlendirme ekranında test et |
| 6 | SNMASKE popup | Müşteri aradığında popup numarayı maskeli gösterir | Mobil'den ara → popup ekranını kontrol et |
| 7 | Yeniden başlatma | Collector servisi restart sonrası olay kaybı olmadan devam eder (spool) | systemctl restart sn-collector → çağrı yap → kontrol |
| 8 | Yük testi | Eşzamanlı 50 çağrıda gecikme < 5 sn, kayıp 0 | Santral simülatörü veya test kuyruğu |
Kabul kriteri: 8 testin tamamı geçildiğinde Kabul Tutanağı imzalanır. Test 1-4 zorunludur; hata halinde 5 iş günü içinde düzeltme yapılır.
| Görev | Sistemnet | Müşteri | Not |
|---|---|---|---|
| Collector sunucu temini (VM/fiziksel) | Danışman | Sorumlu | Ölçek tablosuna göre |
| PBX komutlarının uygulanması | Sorumlu | Onay | Saha ekibi uygular, müşteri izler |
| Firewall / VLAN | Danışman | Sorumlu | IT ekibi uygular |
| SN yazılım kurulumu + connector | Sorumlu | — | Uzaktan/sahada |
| Kabul testleri | Sorumlu | Onay | Bölüm 9'daki SAT senaryosu |
| Bakım & güncelleme | Sorumlu | Bildirim | Satış sözleşmesine göre SLA |
| Üretici | Format | Ayraç | Kodlama | Tipik Uzunluk |
|---|---|---|---|---|
| Avaya CM (unformatted) | Sabit genişlik | — | ASCII | ~200 byte/satır |
| Cisco CUCM | CSV flat dosya | , | UTF-8 | 200+ kolon |
| Tegsoft | JSON | — | UTF-8 | değişken |
| Alcatel OXE (extended) | Sabit genişlik | — | ASCII | ~42 alan |
| iPECS SMDR | ASCII satır | pozisyon | ASCII | 59 byte |
| Nortel CS1000 (FCD 1) | CSV satır | , | ASCII | ~150 byte |
Her üretici için hazır sn-collector connector config şablonları kurulum paketinde verilir:
/etc/sn-collector/connectors/{avaya,cisco,tegsoft,alcatel,ipecs,nortel}.yml
# Örnek: connectors/ipecs.yml
connector: ipecs-smdr
listen_port: 9000
protocol: ascii-lines
fields:
date: [0, 8]
time: [8, 6]
duration: [14, 5]
trunk: [19, 3]
ext: [22, 5]
caller: [27, 15]
called: [42, 15]
status: [57, 2]
map:
status: { "00": "answered", "01": "abandoned", "02": "busy" }
forward:
- url: https://localhost:9000/api/callev
headers: { Authorization: "Bearer ${SN_TOKEN}" }
Sistemnet Bilgi ve İletişim Sistemleri A.Ş. · Oruçreis Mah. Vadi Cad. Giyimkent Sitesi No:170/436 Esenler/İstanbul · +90 212 677 88 88 · sistemnet@sistemnet.com.tr