Konfiguracja Cisco CP-9971 w FreePBX 17: Przewodnik XML

Konfiguracja Cisco CP-9971

Konfiguracja Cisco CP-9971 w środowisku Asterisk to proces, który wymaga nie tylko wiedzy o protokołach, ale i precyzji w edycji plików konfiguracyjnych. Niedawno zespół Phones Rescue z Bournemouth, będący częścią grupy SolutionsInc, zakończył zaawansowany projekt modernizacji infrastruktury telekomunikacyjnej dla firmy Dartnall Decor. Wdrożenie to udowodniło, że przy odpowiednim podejściu, te eleganckie telefony mogą stać się niezawodnym narzędziem pracy.

Sercem nowego systemu stał się FreePBX 17, a jednym z najbardziej ambitnych elementów układanki była właśnie instalacja i adaptacja terminali VoIP. Choć urządzenia te są cenione za swój ikoniczny design, kolorowe wyświetlacze i fenomenalną jakość dźwięku, ich integracja z otwartymi systemami Asterisk bez odpowiedniej wiedzy o plikach XML jest zadaniem karkołomnym. W tym artykule szczegółowo opisujemy, jak pokonać bariery i jak powinna wyglądać poprawna konfiguracja Cisco CP-9971.

Dlaczego Cisco CP-9971 i FreePBX 17 to trudna para?

Telefony Cisco z serii Enterprise (99xx, 89xx) różnią się od standardowych telefonów SIP (jak Yealink czy Grandstream). Nie posiadają one graficznego interfejsu webowego (GUI) do ustawiania kont. Cała inteligencja urządzenia opiera się na pliku konfiguracyjnym XML pobieranym przy każdym uruchomieniu. Dodatkowo, przejście na FreePBX 17 oznacza pracę z najnowszymi stosami technologicznymi, co eliminuje stare, sprawdzone metody (jak sterownik chan_sip) na rzecz nowoczesnego, ale bardziej rygorystycznego pjsip.

Konfiguracja Cisco CP-9971

1. Konfiguracja Cisco CP-9971: Serwer TFTP i Firewall

Telefony Cisco po podłączeniu do sieci szukają serwera TFTP (Trivial File Transfer Protocol), aby pobrać firmware i ustawienia. Bez tego kroku jakakolwiek konfiguracja Cisco CP-9971 jest niemożliwa.

Przygotowanie środowiska /tftpboot

W systemie FreePBX 17 usługa TFTP musi być poprawnie zainstalowana i skonfigurowana. Wszystkie pliki, o których mowa w tym artykule, muszą znaleźć się w katalogu /tftpboot/. Jest to „korzeń” (root) serwera plików dla telefonów. Musisz zadbać o odpowiednie uprawnienia, aby usługa miała dostęp do odczytu plików:

chown -R tftp:tftp /tftpboot/

Sprawdzenie Firewall w FreePBX

Wiele wdrożeń kończy się niepowodzeniem już na starcie, ponieważ wbudowany firewall FreePBX domyślnie blokuje port 69 (TFTP).

  1. Przejdź do menu Connectivity -> Firewall.
  2. W sekcji Services upewnij się, że protokół TFTP jest przypisany do strefy Internal lub Trusted.
  3. Jeśli Twoje biuro (tak jak w przypadku Dartnall Decor) posiada oddzielne sieci VLAN dla głosu, upewnij się, że podsieć VoIP jest dodana jako zaufana w zakładce Networks.

2. Testowanie połączenia: Przykład Linux Mint

Zanim zaczniesz tracić czas na edycję skomplikowanych plików XML, warto upewnić się, że ścieżka komunikacji między telefonem a serwerem jest drożna. Najlepiej zrobić to za pomocą zewnętrznego komputera w tej samej sieci, np. z systemem Linux Mint.

Zainstaluj prostego klienta TFTP:

sudo apt install tftp-hpa

Spróbuj pobrać plik, który docelowo ma trafić do telefonu:

tftp [ADRES_IP_FREEPBX]
tftp> get SEP[MAC_ADRES].cnf.xml
tftp> quit

Jeśli otrzymasz komunikat o pobraniu plików (np. Received 15420 bytes in 0.1 seconds), oznacza to, że serwer plików i firewall działają poprawnie.

3. Konfiguracja Cisco CP-9971 w FreePBX 17: Ustawienia SIP

Tutaj dochodzimy do kluczowych zmian strukturalnych. FreePBX 17 ostatecznie porzuca wsparcie dla starego sterownika chan_sip. Wszystkie nowe konfiguracje muszą opierać się na nowoczesnym sterowniku pjsip.

Kluczowe parametry PJSIP:

  1. Transport: WYMAGANE TCP. To najczęstszy błąd, przez który konfiguracja Cisco CP-9971 kończy się fiaskiem. Standardowy protokół UDP nie współpracuje stabilnie z tą serią. W ustawieniach rozszerzenia (Extension) we FreePBX, w zakładce Advanced, wymuś transport TCP.
  2. Hasło (Secret): Cisco ma sztywny limit długości hasła. Musi ono mieć maksymalnie 31 znaków i nie może zawierać znaków specjalnych (jak !, #, *, $). Jeśli użyjesz znaku specjalnego, telefon po prostu nie wyśle pakietu rejestracji.
  3. Port: Upewnij się, że port SIP (zazwyczaj 5060 dla TCP) jest otwarty w firewallu.

4. Plik XML: Klucz do konfiguracji Cisco CP-9971

Plik o nazwie SEP[MAC_ADRES_TELEFONU].cnf.xml steruje wszystkimi funkcjami terminala. Jeśli popełnisz w nim błąd składniowy, telefon utknie w pętli restartów.

Najważniejsze sekcje XML:

  • <loadInformation>: Tutaj wpisujemy nazwę pliku firmware (np. P003-8-12-00). Ważne: telefony Cisco wymagają firmware w wersji SIP, nie SCCP.
  • <sipPort>: Ustawiamy na 5060 (musi odpowiadać konfiguracji PJSIP we FreePBX).
  • <callManagerGroup>: Definiuje listę serwerów, do których telefon może się zarejestrować. Tutaj podajemy IP naszego serwera FreePBX.
  • <dateTimeSetting>: Kluczowe dla synchronizacji czasu. Konfiguracja Cisco CP-9971 wymaga poprawnej strefy timeZone (np. GMT Standard/Daylight Time) oraz adresu serwera NTP.

Multimedia: Dzwonki i Tapety

Telefon CP-9971 domyślnie posiada tylko dwa dzwonki i dwie tapety. Cała personalizacja odbywa się przez katalog /tftpboot/:

  • Dzwonki: Wymagają pliku Ringlist.xml oraz plików dźwiękowych w formacie .raw lub .wav.
  • Tapety: Wymagają pliku List.xml w odpowiednim podkatalogu. Wszystkie te multimedia muszą być zadeklarowane w głównym pliku konfiguracyjnym XML.

5. Dialplan.xml – Dlaczego bez niego nie da się dzwonić?

Każda profesjonalna konfiguracja Cisco CP-9971 musi zawierać plik dialplan.xml. Bez niego telefon próbuje nawiązać połączenie natychmiast po naciśnięciu pierwszej cyfry, co uniemożliwia normalne wybieranie numerów.

Poprawny dialplan instruuje telefon: „jeśli numer zaczyna się od 0, zbierz 11 cyfr przed wysłaniem zapytania”. Wdrożenie dla Dartnall Decor wymagało precyzyjnego dostosowania dialplanu do brytyjskiej numeracji w Bournemouth.

6. Debugowanie: sngrep i logi Asterisk

W świecie VoIP rzadko wszystko udaje się za pierwszym razem. Oto zestaw narzędzi, których używamy:

Sprawdzenie nasłuchu portu

Zaloguj się do terminala i sprawdź aktywność portów TCP:

ss -ant | grep 5060

Logi w czasie rzeczywistym

Uruchom konsolę: asterisk -rvvv. Gdy telefon próbuje się połączyć, zobaczysz tutaj logi rejestracji. Szukaj błędów autoryzacji (zazwyczaj zbyt długie hasło lub znaki specjalne).

Analiza sngrep

To narzędzie pozwala podejrzeć sesje SIP w trybie graficznym: sngrep. Jeśli widnieje tam tylko REGISTER bez żadnej odpowiedzi, oznacza to, że firewall wycina pakiety lub telefon komunikuje się po UDP zamiast wymaganego TCP.

Podsumowanie i Bonus dla Czytelników

Poprawna konfiguracja Cisco CP-9971 w ekosystemie FreePBX 17 daje ogromną satysfakcję i zapewnia najwyższą jakość rozmów. Dzięki stabilności protokołu TCP, firma Dartnall Decor zyskała niezawodny system komunikacji w swoim biurze w Bournemouth.

Pobierz gotowe, sprawdzone pliki!

Nie trać czasu na metodę prób i błędów. Przygotowaliśmy paczkę konfiguracyjną, która zawiera wzorcowy plik SEP[MAC].cnf.xml, zoptymalizowany dialplan.xml oraz strukturę dzwonków i tapet.

👉 Zapisz się do naszego newslettera poniżej, aby otrzymać link do pobrania plików i zakończyć konfigurację Cisco CP-9971 jeszcze dziś!

Artykuł przygotowany przez zespół SolutionsInc – Twoich ekspertów od IT i VoIP w Bournemouth.


Andre Selfie
Andrzej Majewski

Moja fascynacja technologią zaczęła się podczas studiów informatycznych na Uniwersytecie Zielonogórskim. Od czasu przeprowadzki do Wielkiej Brytanii w 2015 roku i osiedlenia się na stałe w Bournemouth, przekułem tę pasję w karierę zawodową poświęconą infrastrukturze o wysokiej wydajności.W głębi duszy jestem entuzjastą Linuxa – to zaangażowanie wykracza poza moją pracę zawodową w SolutionsInc i obejmuje również mój rozbudowany, prywatny homelab. Niezależnie od tego, czy zarządzam złożonymi architekturami serwerowymi przez ISPConfig, buduję systemy VoIP w ramach Phones Rescue, czy tworzę narzędzia do automatyzacji w Pythonie, najlepiej czuję się, podejmując wyzwania związane z projektowaniem wydajnych rozwiązań open-source

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *