Wprowadzenie
Grupa LOGIKA_GRP stanowi zbiór wszystkich typów komunikatów wymienianych kanałem logicznym protokołu dVo.Komunikat ten oznacza chęć nawiązania rozmowy przez abonenta, który wysłał komunikat.
Tabela 4.1. Pola komunikatu WYWOLANIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 8 bajtów | |||
Identyfikator komunikatu | Wartość: 101 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Komunikat ten oznacza odebranie połączenia telefonicznego.
Tabela 4.2. Pola komunikatu ODEBRANIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 20 bajtów | |||
Identyfikator komunikatu | Wartość: 102 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Adres IP odbierającego |
Jest to adres IP, pod którym znajduje się faktyczny odbiorca rozmowy. W przypadku, gdy użytkownik Ania dzwoni do użytkownika Bolek (a Bolek nie jest członkiem żadnej grupy), to Adres IP odbierającego to po prostu adres Bolka. W przypadku, gdy użytkownik Ania dzwoni do użytkownika Bolek (a Bolek jest członkiem grupy), to Adres IP odbierającego będzie zawierał adres osoby faktycznie odbierającej połączenie. | uint32 | 1 | 4 bajty |
Port logiczny odbierającego | Numer portu, na którym odbiorca nasłuchuje informacji kanału logicznego (patrz także opis pola Adres IP odbierającego powyżej. | uint32 | 1 | 4 bajty |
Port transportowy odbierającego | Numer portu, na którym odbiorca nasłuchuje informacji kanału transportowego (patrz także opis pola Adres IP odbierającego powyżej. | uint32 | 1 | 4 bajty |
Komunikat ten oznacza, iż osoba do której nastąpiła próba połączenia nie ma wolnej ani jednej linii telefonicznej.
Tabela 4.3. Pola komunikatu ZAJETE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 8 bajtów | |||
Identyfikator komunikatu | Wartość: 103 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Komunikat ten oznacza rozłączenie (lub odrzucenie) połączenia (lub wywołania). Może zostać wysłany zarówno przez osobę wywołującą połączenie, jak i wywoływaną.
Tabela 4.4. Pola komunikatu ROZLACZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 8 bajtów | |||
Identyfikator komunikatu | Wartość: 104 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Komunikat ten oznacza zawieszenie połączenia telefonicznego.
Tabela 4.5. Pola komunikatu ZAWIESZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 8 bajtów | |||
Identyfikator komunikatu | Wartość: 105 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Komunikat ten oznacza odwieszenie połączenia telefonicznego.
Tabela 4.6. Pola komunikatu ODWIESZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 20 bajtów | |||
Identyfikator komunikatu | Wartość: 106 | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Adres IP odwieszającego |
Jest to adres IP, pod którym znajduje się faktyczny odwieszający rozmowę. W przypadku, gdy użytkownik Ania dzwoni do użytkownika Bolek (a Bolek nie jest członkiem żadnej grupy, lub to nie on odwiesił połączenie), to Adres IP odwieszającego to po prostu adres Bolka. W przypadku, gdy użytkownik Ania dzwoni do użytkownika Bolek (a Bolek jest członkiem grupy i to nie on odwiesił połączenie), to Adres IP odwieszającego będzie zawierał adres osoby faktycznie odwieszającej połączenie. | uint32 | 1 | 4 bajty |
Port logiczny odbierającego | Numer portu, na którym odbiorca nasłuchuje informacji kanału logicznego (patrz także opis pola Adres IP odbierającego powyżej. | uint32 | 1 | 4 bajty |
Port transportowy odbierającego | Numer portu, na którym odbiorca nasłuchuje informacji kanału transportowego (patrz także opis pola Adres IP odbierającego powyżej. | uint32 | 1 | 4 bajty |
Komunikat ZETON_MSG jest elementem mechanizmu zapewniającego synchronizację stanu linii telefonicznych wewnątrz każdej grupy.
Komunikat ten jest przekazywany cyklicznie przez członków grupy.
Tabela 4.7. Pola komunikatu ZETON_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 8 + x * 28 bajtów | |||
Identyfikator komunikatu | Wartość: 130 | uint32 | 1 | 4 bajty |
Liczba mini-komunikatów |
Określa liczbę mini-komunikatów umieszczonych w polu Mini-komunikaty. Oznaczmy tą wartość przez x. | uint32 | 1 | 4 bajty |
Mini-komunikaty |
Lista mini-komunikatów (więcej informacji w Sekcja 4.1.7.1, „Mini-komunikaty”). Każdy mini-komunikat ma długość 28 bajtów. | octet | x * 28 | x * 28 bajtów |
Każdy mini-komunikat wyrównany jest zerami do 28 bajtów.
Każdy mini-komunikat zawiera pole TTL (ang. Time To Live). Kiedy mini-komunikat jest wkładany do listy komunikatów w ZETON_MSG, wartość pola TTL ustawiana jest na n - 1, gdzie n oznacza liczność grupy.
Każdy kolejny odbiorca ZETON_MSG po przetworzeniu mini-komunikatu zmniejsza wartość pola TTL o 1, a następnie, o ile wartość TTL wynosi 0 usuwa mini-komunikat z listy mini-komunikatów.
Zdefiniujmy pomocniczą strukturę STRUKTURA_ABONENT:
STRUKTURA_ABONENT { uint32 IP, uint32 PORT_LOGICZNY, uint32 PORT_TRANSPORTOWY }
Rozmiar struktury STRUKTURA_ABONENT (IP + PORT_LOGICZNY + PORT_TRANSPORTOWY) wynosi 12 bajtów.
Wprowadźmy dodatkowo notację STRUKTURA_ABONENT(x, y, z) na oznaczenie struktury STRUKTURA_ABONENT z polami zainicjowanymi według schematu:
IP = x, PORT_LOGICZNY = y, PORT_TRANSPORTOWY = z
Mini-komunikat ten oznacza, że wystąpiło wywołanie do jednego z członków grupy.
Tabela 4.8. Pola komunikatu MINI_WYWOLANIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator mini-komunikatu | Wartość: 701 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, na której sygnalizowane jest wywołanie. | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Jest to Identyfikator sesji pochodzący z komunikatu WYWOLANIE_MSG rozpoczynającego próbę połączenia do grupy. Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Wywołujący |
Dane abonenta dzwoniącego do grupy. Wartość: STRUKTURA_ABONENT(IP_DZWONIĄCEGO, PORT_LOGICZNY_DZWONIĄCEGO, 0). | STRUKTURA_ABONENT | 1 | 12 bajtów |
Mini-komunikat ten oznacza chęć odebrania wywołania do grupy przez jednego z członków grupy.
Tabela 4.9. Pola mini-komunikatu MINI_ODEBRANIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator mini-komunikatu | Wartość: 702 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, na której sygnalizowane jest wywołanie. | uint32 | 1 | 4 bajty |
Odbierający |
Dane abonenta, który zdecydował się odebrać połączenie do grupy. Wartość: STRUKTURA_ABONENT(IP_ODBIERAJĄCEGO, PORT_LOGICZNY_ODBIERAJĄCEGO, PORT_GŁOSOWY_ODBIERAJĄCEGO). | STRUKTURA_ABONENT | 1 | 12 bajtów |
wyrównanie zerami |
Wartość: 0 | uint8 | 4 | 4 bajty |
Mini-komunikat ten oznacza zwolnienie danej linii telefonicznej w grupie.
Tabela 4.10. Pola mini-komunikatu MINI_ROZLACZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator komunikatu | Wartość: 704 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, na której wystąpiło rozłączenie. | uint32 | 1 | 4 bajty |
wyrównanie zerami |
Wartość: 0 | uint8 | 16 | 16 bajtów |
W przypadku rozmowy pomiędzy użytkownikiem Anią (należącą do grupy), a użytkownikiem Bolkiem, mini-komunikat ten jest dodawany przez Anię do listy w ZETON_MSG, gdy to Ania zawiesi połączenie.
Tabela 4.11. Pola mini-komunikatu MINI_ZAWIESZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator mini-komunikatu | Wartość: 705 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, na której następuje zawieszenie połączenia. | uint32 | 1 | 4 bajty |
Identyfikator sesji |
Jest to Identyfikator sesji pochodzący z komunikatu WYWOLANIE_MSG rozpoczynającego próbę połączenia do grupy. Zgodnie z Tabela 3.1, „Ogólna kolejność pól w komunikatach”. | uint32 | 1 | 4 bajty |
Niezawieszający połączenia |
Dane abonenta, który nie zawiesił połączenia (czyli Bolka według przykładu powyżej). Wartość: STRUKTURA_ABONENT(IP_BOLKA, PORT_LOGICZNY_BOLKA, PORT_GŁOSOWY_BOLKA). W przypadku, gdy to Bolek nawiązał połączenie, a Ania je odebrała (lub odwiesiła) to wartość pola PORT_GŁOSOWY_BOLKA wynosi 0. | STRUKTURA_ABONENT | 1 | 12 bajtów |
Mini-komunikat ten oznacza odwieszenie połączenia telefonicznego przez członka grupy.
Tabela 4.12. Pola mini-komunikatu MINI_ODWIESZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator mini-komunikatu | Wartość: 706 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, którą odwieszamy. | uint32 | 1 | 4 bajty |
Odwieszający |
Dane abonenta, który zdecydował się odwiesić połączenie. Wartość: STRUKTURA_ABONENT(IP_ODWIESZAJĄCEGO, PORT_LOGICZNY_ODWIESZAJĄCEGO, PORT_GŁOSOWY_ODWIESZAJĄCEGO). | STRUKTURA_ABONENT | 1 | 12 bajtów |
wyrównanie zerami |
Wartość: 0 | uint8 | 4 | 4 bajty |
Mini-komunikat ten oznacza, że jeden z użytkowników grupy zadzwonił na zewnątrz. Oznacza też, że linia telefoniczna wymieniona w danych komunikatu jest zajęta.
Tabela 4.13. Pola mini-komunikatu MINI_POLACZENIE_MSG
Nazwa pola | Opis pola | Jednostka | Rozmiar w jednostkach | Rozmiar w bajtach |
---|---|---|---|---|
Suma: | 28 bajtów | |||
Identyfikator mini-komunikatu | Wartość: 707 | uint32 | 1 | 4 bajty |
TTL |
Zgodnie z opisem Sekcja 4.1.7.1, „Mini-komunikaty”. | uint32 | 1 | 4 bajty |
Numer linii telefonicznej |
Linia telefoniczna, na której otwierane jest połączenie. | uint32 | 1 | 4 bajty |
wyrównanie zerami |
Wartość: 0 | uint8 | 16 | 16 bajtów |