Szukaj

Muzyka na czekanie w Asterisk’u

Muzyka na czekanie w Asterisk’u

Music On Hold (MOH) to funkcja w systemie telefonicznym Asterisk, która pozwala na odtwarzanie muzyki w tle, kiedy połączenie jest przetrzymywane lub przekierowywane. Może być odtwarzany wówczas jeden lub wiele plików audio. Instalator Asteriska domyślnie dodaje pliki audio do katalogu /var/lib/asterisk/moh i tworzy domyślną klasę muzyki. Możemy dodawać własne klasy muzyki i nagrania dźwiękowe. Pliki powinny być w formacie WAV lub MP3 i mieć odpowiednie uprawnienia do odczytu i odtwarzania.

Spis treści

1) Przykładowe zastosowania muzyki na czekanie

W systemie Asterisk można dostosować każdą sytuację, w której są odtwarzane różne pliki audio. Poniżej przedstawiamy kilka przykładowych sytuacji:

  1. Muzyka w kolejce (ang. music on hold) –  te pliki audio, które są odtwarzane, gdy połączenie jest przekierowywane do kolejki oczekujących.
  2. Muzyka podczas dzwonienia (ang. ringback tone) – te pliki audio są odtwarzane, gdy dzwoniący czeka na połączenie.
  3. Muzyka w trakcie przełączania/transferu rozmowy (ang. music on transfer) – te pliki audio są odtwarzane, gdy rozmówca zostanie przekierowany na inny numer lub gdy nastąpi połączenie konferencyjne

W Asterisk’u można skonfigurować niestandardowe klasy muzyki i dostosować ich zachowanie do indywidualnych potrzeb.

2) Plik musiconhold.conf

Plik musiconhold.conf to plik konfiguracyjny systemu Asterisk, który zawiera konfiguracje klas muzyki dla funkcjonalności Music on Hold (MoH). Klasa muzyki to zbiór plików dźwiękowych, które są odtwarzane użytkownikowi, gdy oczekuje na połączenie lub jest przekierowany. Przykładowy plik musiconhold.conf.sample znajduje się w repozytorium github. Plik musiconhold.conf po instalacji systemu znajduje się w katalogu /etc/asterisk/ i składa się z sekcji [general] oraz sekcji opisujących poszczególne klasy muzyki. Każda sekcja powinna zawierać nazwę klasy muzyki w nawiasach kwadratowych, a następnie listę plików dźwiękowych do odtwarzania. Pliki dźwiękowe są oddzielone przecinkami, mogą być pobierane ze wskazanego folderu lub nawet streamowane na żywo. Oto przykładowa konfiguracja pliku musiconhold.conf:
				
					nano /etc/asterisk/musiconhold.conf

				
			
				
					[general]
cachertclasses=yes

[default]
mode=files
directory=moh
sort=random 

[mohmp3]
mode=custom
directory=/var/lib/asterisk/mohmp3
application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s


				
			

W tym przykładzie, plik musiconhold.conf składa się z trzech sekcji: general i opisujących dwie klasy muzyki: default i mohmp3

W sekcji [general] jest tak na prawdę tylko jeden możliwy do użycia parametr cachertclasses. Opcja "yes" oznacza, że Asterisk będzie używał tylko jednej instancji klasy muzyki dla wszystkich użytkowników, którzy jej będą używać. Zmniejszy to zużycie procesora i pamięci, ale użytkownik może usłyszeć muzykę niekoniecznie od początku utworu. Będzie on odtwarzany cyklicznie w czasie korzystania z tej klasy.

W sekcji [default] określono, że klasa muzyki „default” powinna korzystać z plików zapisanych w katalogu moh. To wskazanie na podkatalog w ścieżce  /var/lib/asterisk/ czyli /var/lib/asterisk/moh Parametr "mode=files" oznacza, że pliki dźwiękowe są zapisane w formacie zrozumiałym przez system Asterisk. Dodatkowy parametr "sort=random" oznacza, że pliki dźwiękowe są odtwarzane losowo. Inne opcje sortowania to: „alpha” i „randstart”. „alpha” oznacza, że pliki są sortowane w porządku alfabetycznym. Jeśli „randstart”, pliki są również sortowane w porządku alfabetycznym, ale pierwszy plik jest wybierany losowo.

W sekcji [mohmp3] określono, że klasa muzyki „mohmp3” powinna korzystać z plików zapisanych w katalogu /var/lib/asterisk/mohmp3  (parametr directory). Parametr "mode=custom" wskazuje na zastosowanie dedykowanej aplikacji do odtwarzania muzyki. Jest ona zdefiniowana za pomocą parametru „application”. My wykorzystujemy aplikację mpg123. Możesz ją zainstalować wydając następujące polecenie:

				
					# CentOS
sudo yum install mpg123

# Ubuntu
sudo apt-get install mpg123
				
			
Po zapisaniu zmian w pliku musiconhold.conf, konieczne jest wykonanie polecenia "module reload res_musiconhold.so" w konsoli Asterisk lub ponowne uruchomienie całego systemu, aby zmiany zostały wprowadzone.

3) Funkcja SetMusicOnHold()

SetMusicOnHold() jest funkcją dostępną w systemie Asterisk, która służy do ustawiania klas muzyki w czasie oczekiwania na połączenie. Funkcja ta pozwala na dynamiczną zmianę klasy muzyki w trakcie połączenia.

Składnia funkcji SetMusicOnHold() wygląda następująco:

				
					SetMusicOnHold(class)

				
			
Parametr „class” określa nazwę klasy muzyki, która ma być odtwarzana w czasie oczekiwania na połączenie. Nazwa ta musi odpowiadać jednej z klas muzyki skonfigurowanych w pliku konfiguracyjnym systemu Asterisk. Przykład użycia funkcji SetMusicOnHold() w Dialplanie Asterisk:
				
					nano /etc/asterisk/extensions.conf

				
			
				
					exten => 100,1,Answer()
 same => n,SetMusicOnHold(mohmp3)
 same => n,Dial(SIP/100,30)
 same => n,Hangup()

				
			

W tym przykładzie funkcja SetMusicOnHold() ustawia klasę muzyki "mohmp3" podczas oczekiwania na połączenie, a następnie wywołuje funkcję Dial(), aby nawiązać połączenie z numerem SIP/100. Po zakończeniu rozmowy, funkcja Hangup() kończy połączenie.

Zamiast używać funkcji SetMusicOnHold()można wykorzystać parametr "m" bezpośrednio w funkcji Dial(). Nasz Dialplan mógłby wyglądać następująco:

				
					exten => 100,1,Answer()
 same => n,Dial(SIP/100,30,m(mohmp3))
 same => n,Hangup()

				
			

Nie musisz być wirtuozem, aby skonfigurować muzykę na czekanie w swoim systemie Asterisk. Jak widać nie jest to skomplikowany proces, a może uprzyjemnić wrażenia klientów w czasie połączenia z Twoim systemem.

Oczywiście, możesz też nieco poeksperymentować i zamiast plików, możesz uruchomić streaming muzyki z zewnętrznej usługi.

				
					application=/usr/bin/streamplayer 192.168.100.52 888
				
			

Ale o tym, może następnym razem 😅

Czy wiesz co tak na prawdę dzieje się na Twojej centrali? Wypróbuj nasze autorskie oprogramowanie VOIPERO.

 

System niedawno wystartował i teraz jest udostępniany całkowicie za darmo.  Instalacja i konfiguracja zajmuje kilka minut

 

Dowiedz się jakie możliwości ma system VOIPERO jeżeli chodzi o raportowanie i monitorowanie na żywo systemów VoIP bazujących na asterisku.

Share this post

Masz pytania lub potrzebujesz oferty?

Skontaktuj się z naszym doradcą.

Popularne wpisy

Powiązane posty

Projekt wystartował!

Monitorowanie i raportowanie Twojego serwera VoIP