Standardy i formaty CLIP
Poniedziałek, 01 Czerwiec 2009
W artykule opisano rodzaje ramek i sposoby przesyłania sygnału
CLIP (Calling Line Identification Presentation) w analogowych
łączach telekomunikacyjnych. Umieszczono także kilka wskazówek
dotyczących sposobu dekodowania CLIP-a tak, żeby działał na
możliwie największej liczbie central telefonicznych.
64 ELEKTRONIKA PRAKTYCZNA 6/2009
NOTATNIK KONSTRUKTORA
Standardy i formaty CLIP
W artykule opisano rodzaje ramek i sposoby przesyłania sygnału
CLIP (Calling Line Identi?cation Presentation) w analogowych
łączach telekomunikacyjnych. Umieszczono także kilka wskazówek
dotyczących sposobu dekodowania CLIP?a tak, żeby działał na
możliwie największej liczbie central telefonicznych.
Na łączach analogowych możliwe jest
wysyłanie do abonenta informacji o nume-
rze wywołującego go abonenta. Istnieją dwa
standardy kodowania informacji CLIP: DTMF
i FSK. Na łamach EP było publikowanych kilka
rozwiązań dekoderów CLIP. W artykułach nie
omówiono standardów przesyłanych ramek,
skupiając się tylko na podstawowych (w przy-
padku FSK daty/godziny i numeru abonenta
wywołującego). Warto jednak dokładniej po-
znać typy przesyłanych ramek. Wiele central
(Siemens, Slican) generuje dodatkowe ramki,
a np. rejestrator telefoniczny AVT?5065 prze-
syła ramkę w formacie RAW do portu szerego-
wego umożliwiając jej zdekodowanie. Ponadto
niektóre telefony i identy?katory wyświetlają
dodatkowe ramki (np. opis tekstowy).
Standard DTMF
Na początku omówię prostszy standard
DTMF (Dual Tone Multi Frequency). Spotka-
łem się z dwoma metodami wysyłania sy-
gnałów CLIP:
Kody DTMF
(80 ms ton,
80 ms przerwa)
Pauza ?250 ms
?1 s
Dzwonek
oraz:
Dzwonek(najczę-
ściejkrótki,ok.
500ms)
Pauza?250ms
?1sek
KodyDTMF
(80mston,
80msprzerwa)
Pauza?200ms
Dzwonek
W Polsce spotyka się pierwszą z omó-
wionych tu metod. Kody DTMF układają się
w ramkę złożona z trzech pól:
Znak startu
ramki
nr abonenta
znak końca
ramki
Numer abonenta może być 20?cyfrowy.
Przykładowa ramka może wyglądać tak:
D012345678A
Powyższa ramka jest prawdziwa dla cen-
trali ESS5. Mając do czynienia z różnymi
typami central spotkałem się z różnymi ko-
dami znaków startu i końca ramki. Np. dla
Siemensa ramka wyglądała tak:
D0123456789C
Na szczęście jest pewna reguła ? znak
startu i końca jest różny od 0...9, najczęściej
są to znaki A, C, D.
Ramka abonenta zastrzeżonego lub bez
możliwości identy?kacji ma w miejscu nu-
meru dziewięć lub dziesięć zer (zależne od
modelu centrali).
Aby program dekodujący CLIP działał
prawidłowo, należy postępować wg następu-
jącego algorytmu:
1. Dekodowanie rozpoczyna się od oczeki-
wania w pętli na jeden ze znaków: #, *,
A...D.
2. Po odebraniu któregoś z powyższych
znaków oczekiwane są z kolei znaki z za-
kresu 0...9. Jeśli taki znak zostanie ode-
brany, to jest on zapisywany do bufora,
po czym wskaźnik bufora zostaje zwięk-
szony i program odbiera kolejne znaki.
3. Jeśli w ciągu 3 sekund nie będzie dzwon-
ka, procedura rozpoczyna się od nowa
(skok do 1).
4. Jeśli wszystkie odebrane znaki w buforze
są zerami, to nie ma możliwości ziden-
ty?kowania rozmówcy, w przeciwnym
przypadku zostaną wyświetlone
Powyższy algorytm zapewnia dekodowa-
nie CLIP?a na każdej centrali, bez względu na
sposób przesyłania sygnału CLIP i stosowane
znaki startu oraz stopu. Naturalnie procedurę
oczekiwania na znak należy zaopatrzyć w ti-
meout, aby program się nie zawieszał.
Jak łatwo zauważyć, standard DTMF jest
stosunkowo prosty, ale przekazuje mało in-
formacji (nie można odróżnić abonenta z nu-
merem zastrzeżonym od abonenta bez możli-
wości identy?kacji). Ponadto wysłanie tylko
10 cyfr będzie trwało 12 (łącznie ze znakami
Start i Stop) × 160 ms (czas tonu + czas
przerwy)=1920 ms, czyli prawie 2 sekundy!
Przy 20 cyfrach będą to prawie 4 sekundy!
Znacznie bardziej zaawansowany i mający
więcej możliwość jest standard FSK.
Standard FSK
Są spotykane dwie metody wysyłania
CLIP?a. Standard BELLCORE (stosowany
w Polsce):
Dzwonek(najczęściej
krótkiokoło500ms)
Pauza?250ms
TransmisjaFSKod
500msdo200ms
Pauza?200ms
Dzwonek(standardowa
długość1s)
oraz BT (British Telecommunications):
Zmianapolaryzacjiżył
Pauza?100ms
Sygnałsynchronizacji
Pauza?45?75ms
TransmisjaFSKod500
msdo200ms
Pauza?200ms
Dzwonek(standardowa
długość1s)
W standardzie FSK jedynce logicznej
odpowiada ton 1300 Hz, zeru logicznemu
2100 Hz (standard V.23), prędkość transmisji
wynosi 1200 bd. Kompletną ramkę przedsta-
wiono poniżej:
Synchronizacja
?sygnałSMRR
80...250ms
Bitstopu?sygnał
MARK
55...160ms
Meldunek(MESSAGE)
500...2000ms
Pierwsze dane ramki (znak SMRR) skła-
dają się z bitów, których wartość zmienia
się naprzemiennie 0,1,0,1... Sygnał ten jest
używany do zsynchronizowania dekodera
FSK. Sygnał MARK jest złożony ze 180 bi-
tów o wartości 1. Po nim wysyłany jest mel-
dunek. Budowę meldunku przedstawiono
poniżej:
Bajtokreślającyrodzaj
danychTYPE
Bajtokreślającyliczbę
bajtówmeldunkuLEN
(zależnaoddługości
rekordówmeldunku)
Rekord/rekordymeldunku
Bajtsumykontrolnej
CRC
(sumamodulo2)
Pole TYPE najczęściej zawiera wartość
$80 ? identy?kacja dzwoniącego. Istnieje też
typ=$04. Rekord meldunku ma budowę jak
poniżej:
Bajtrodzajuda-
nych(BYPE)
Bajtokreślający
liczbębajtów
danych(LEN)
Dane
(DATA)
Cała ramka CLIP FSK może wyglądać jak
poniżej:
SMRR
MARK
MESSAGE
CRC
TYPE
LEN
Rekordy
meldunku
TYPE
LEN
DATA
TYPE
LEN
DATA
65ELEKTRONIKA PRAKTYCZNA 6/2009
Standardy i formaty CLIP
Typowe rekordy:
? rekord czasu i daty (kod $01);
? rekord numeru abonenta wywołującego
(kod $02).
Spotykane są również rekordy postaci:
? rekord numeru wybranego przez abo-
nenta wywołującego (kod $03);
? rekord określający typ centrali (kod
$04);
? rekord opisu tekstowego (kod $07);
? status centrali (kod $13).
Poniżej przedstawiono przykładowe
ramki CLIP. Pogrubioną czcionką oznaczo-
no pierwsze bajty ramek oraz sumę kontro-
lną. W zapisie występują wartości hex kodu
ASCII poszczególnych znaków ramki.
HEX ASCII OPIS
$80 Wiadomość CLIP
$15 21 bajtów meldunku
(łączenie z CRC)
$01 rekord daty i czasu
$08 8 bajtów w rekordzie
$30 ?0? znaki układające się
w datę 05?16 godz
17:35
$35 ?5? jeśli pierwszy bajt
nr ma wartość $50
(znak ?P?), oznacza to
nr zastrzeżony
$31 ?1? jeśli pierwszy bajt
ma wartość $4F (znak
?O?), oznacza to,
że abonent nie ma
identy?kacji (np.
jest podłączony do
centrali analogowej)
$36 ?6?
$31 ?1?
$37 ?7?
$33 ?3?
$35 ?5?
$02 rekord numeru abonenta
wywołującego
$09 9 bajtów w rekordzie
$30 ?0? znaki numeru abonenta
wywołującego 012345678
$31 ?1?
$32 ?2?
$33 ?3?
$34 ?4?
$35 ?5?
$36 ?6?
$37 ?7?
$38 ?8?
$xx CRC ? suma modulo 2
wszystkich danych
(wyłączając CRC)
Niektóre centrale wysyłają dodatkowe
ramki. Np. Siemens ESWD wysyła ramkę:
HEX ASCII OPIS
$80 Wiadomość CLIP
$31 liczba bajtów meldunku
(łączenie z CRC)
R E K L A M A
66 ELEKTRONIKA PRAKTYCZNA 6/2009
NOTATNIK KONSTRUKTORA
$01 rekord daty i czasu
$08 8 bajtów w rekordzie
$30 ?0? znaki układające się
w datę 05?16 godz
17:35
$35 ?5?
$31 ?1?
$36 ?6?
$31 ?1?
$37 ?7?
$33 ?3?
$35 ?5?
$02 rekord numeru abonenta
wywołującego
$09 9 bajtów w rekordzie
$30 ?0? znaki numeru abonenta
wywołującego
?012345678?
$31 ?1?
$32 ?2?
$33 ?3?
$34 ?4?
$35 ?5?
$36 ?6?
$37 ?7?
$38 ?8?
$03 rekord nr wybranego
$07 7 bajtów w rekordzie
$31 ?1? znaki wybranego numeru
?1234567?
$32 ?2?
$33 ?3?
$34 ?4?
$35 ?5?
$36 ?6?
$37 ?7?
$04 rekord typu centrali
$11 17 bajtów w rekordzie
$45 ?E? znaki tekstu ?ESWD
from SIEMENS?
$53 ?S?
$57 ?W?
$43 ?D?
$20 ? ?
$66 ?f?
$72 ?r?
$6F ?o?
$6D ?m?
$20 ? ?
$53 ?S?
$49 ?I?
$45 ?E?
$4D ?M?
$45 ?E?
$4E ?N?
$53 ?S?
$xx CRC ? suma modulo 2
wszystkich danych
(wyłączając CRC)
Czytelnicy mogą sobie zadać pytanie: po
co wysyłać numer, który wybrał abonent wy-
wołujący? Przecież doskonale wiadomo do
jakiej linii podłączony jest telefon. W 99%
procentach przypadków numer wybierany
będzie taki sam, jak numer linii telefonicz-
nej, ale gdy abonent tra? do nas z przekiero-
wanej rozmowy, numer ten będzie inny.
Przykładowo: abonent o nr 1111111 prze-
kierował połączenia na nr 2222222. Abonent
3333333 wybierając nr 1111111 dodzwoni
się pod nr 2222222, a nie pod 1111111. W tej
sytuacji na linię o numerze 2222222 zostanie
wysłana następująca informacja:
Rekord $01 DATA i CZAS
Rekord $02 3333333 (nr
abonenta
wywołującego)
Rekord $03 2222222 (wybrany
przez niego nr
niezgodny z nr
linii)
Rekord $04 ESWD from SIEMENS
Gdyby abonent 3333333 zadzwonił do
1111111 bez włączonej funkcji przekiero-
wania połączeń, otrzymalibyśmy poniższą
ramkę:
Rekord $01 DATA i CZAS
Rekord $02 3333333 (nr
abonenta
wywołującego)
Rekord $03 1111111 (wybrany
przez niego nr
zgodny z nr linii)
Rekord $04 ESWD from SIEMENS
Podobnie będzie w przypadku posiada-
nia numerów PBX. Dzięki rekordowi $03
mamy namiastkę numeru MSN/DDI z ISDN
w ruchu przychodzącym na łączach analo-
gowych. Dzięki rekordowi $03 można odrzu-
cać połączenia.
Algorytm odbioru sygnału CLIP powi-
nien być następujący:
1. Czekanie na SMRR.
2. Odebranie MARK, jeśli nie MARK, to
skocz do 1.
3. Zeruj CRC.
4. Odebranie TYPE, jeśli różne od $80, to
skocz do 1.
5. Odbierz LEN i zapamiętaj w zmiennej
LenMsg.
6. Odbierz TYPE, zmniejsz LenMsg
7. Odbierz LEN, zapamiętaj w zmiennej
LenRec, zmniejsz LenMsg.
8. Odbierz daną, zapisz w buforze, zmniejsz
LenMsg i LenRec.
9. Jeśli LenRec<>0, to skacz do 8
10.Jeśli znane pole TYPE, to przygotuj do
wyświetlenia/analizy (np. rekord daty/
czasu można przygotować do zapisania
w zegarze), jeśli pole nieznane nie inter-
pretuj danych.
11.Jeśli LenMsg<>0, to skacz do 6
12.Odbierz CRC.
13.Porównaj CRC. Jeśli prawidłowe, to wy-
świetl dane.
Taki algorytm zagwarantuje, że CLIP
będzie wyświetlony bez względu na liczbę
rekordów w komunikacie oraz ich kolejność.
Na tej zasadzie działa CLIP w rejestratorze
AVT?5065 i bez problemu radzi sobie z re-
kordami typu $01, $02 (data/czas/numer)
jak i $03, $04, $07, które przy wyświetlaniu
informacji o numerze pomija. Niestety nie
można tego powiedzieć o niektórych kon-
strukcjach dekoderów dostępnych w Inter-
necie, gdzie analiza kodu źródłowego dowo-
dzi, iż identy?kator zadziała tylko z ramkami
typu $01 i $02. Pojawienie się dodatkowych
ramek w komunikacie spowoduje odczyta-
nie złej sumy kontrolnej w konsekwencji
czego program nic nie wyświetli. Inna kolej-
ność ramek może natomiast spowodować złe
ustawienie zegara oraz wyświetlenie czasu
zamiast numeru.
Jak wynika z powyższego tekstu, urzą-
dzenie zbudowane i przetestowane przez
autora, który nie zagłębił się w odpowiednie
normy może będzie poprawnie działało tylko
u niego!
Na koniec należy dodać, że obydwa
standardy umożliwiają przekazanie numeru
połączenia oczekującego (DIDCW ? Calling
Identity on Call Waiting. Po uaktywnieniu
usługi, na czas przekazywania informacji
o numerze, rozmowa jest wyciszana.
Sławomir Skrzyński, EP
slawomir.skrzynski@ep.com.pl
Źródła:
Nota katalogowa układu CML612
http://www.hw.cz/pic/clip/index.html
R E K L A M A
Zobacz więcej w kategorii Notatnik konstruktora