Snom Telefone an pascom 18.11 onsite

Hallo,

ich habe heute diverse Snom 735 und 745 an einer onsite pascom 18.11 in Betrieb genommen.
Grundsätzlich funktionieren diese auch. Es ergeben sich nur noch ein paar Probleme:

  • user_name wird in der zweiten Zeile des Displays angezeigt. Kann ich das ausblenden?
  • fkeys der Basiskonfiguration werden ignoriert. Ich habe fkeys und labels in der Basiskonfig, diese werden aber nicht auf das zugeordnete Telefon angewendet. Geht das evtl nur mit XML-Config?
  • Displayname aktualisiert nicht. Nach Änderung eines Benutzers in pascom wird der Displaytext am Telefon nicht aktualisiert.
  • Kann ich onsite ohne große DNS-Konfigurationen ein Zertifikat verwenden? Snoms 10er Firmware nervt nach Provisionierung mit der zu akzeptierenden Ausnahme.
  • Anlagenweites Telefonbuch: Kann ich in der Pascom ein Telefonbuch anlegen welches auch von den Snoms per LDAP abgefragt werden kann?

Kann mir jemand bei den o.g. Punkten helfen?

Vielen Dank.

Hi @b.schliekmann

schau mal hier -> Anzeige Nutzerkennung bei SNOM D785

LG Maik

Hallo @b.schliekmann

am besten nutzt du dafür gleich das untenstehende XML-Template und passt das für deine Wünsche an.
Diese Vorlage provisioniert dabei bereits statt dem SIP-Peer die Durchwahl des Nutzers (setting user_idle_number). Zusätzlich findest du darin eine Vorlage für die BLFs. Das (self signed) Zertifikat und die LDAP-Einstellungen kannst du damit auch gleich mit provisionieren.
Die Snom Firmware sollte dabei aber mindestens Firmware-Release 8.7.5.5.5.52/8.9.3.3.41 sein

<?xml version="1.0" encoding="utf-8"?>
<settings>
    <certificates>
        <certificate type="base64">
        MIICyTCCAbGgAwIBAgIJAJUb0rj2tUuwMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV
        ...
        M0dgyvqzDzXJiuV7tyLiQjlyAV2swxosNGckZe1gLSgi3WRew8TRbh+S7Yt+
        </certificate>
    </certificates>
    <phone-settings>
        
        {{!-- Preferences --}}
        <language perm="R">{{{list_key lang "de_DE" "Deutsch" "en_US" "English"}}}</language>
        <pnp_config perm="R">off</pnp_config>
        <http_user perm="R">{{{071ipp_authuser}}}</http_user>
        <http_pass perm="R">{{{071ipp_authpass}}}</http_pass>
        <http_scheme perm="R">off</http_scheme>
        <timezone perm="R">{{{list_key lang "de_DE" "GER+1" "en_US" "GBR-0"}}}</timezone>
        <network_id_port perm="R">{{#if_eq voip_sip 'tls'}}5061{{else}}5060{{/if_eq}}</network_id_port>
        <user_phone perm="R">off</user_phone>
        <challenge_response perm="R">off</challenge_response>
        <filter_registrar perm="R">off</filter_registrar>
        <admin_mode_login perm=""></admin_mode_login>
        <admin_mode_password perm="R">{{{admin_password}}}</admin_mode_password>
        <admin_mode perm="RW">off</admin_mode>
        <tone_scheme perm="R">{{{list_key lang "de_DE" "GER" "en_US" "GBR"}}}</tone_scheme>
        <logon_wizard perm="R">off</logon_wizard>
        <guess_number perm="R">off</guess_number>
        <display_method perm="R">display_name_number</display_method>
        <update_policy perm="R">settings_only</update_policy>
        <transfer_on_hangup perm="R">on</transfer_on_hangup>
        <transfer_on_hangup_with_starcode perm="R">on</transfer_on_hangup_with_starcode>
        <transfer_on_hangup_non_pots perm="R">on</transfer_on_hangup_non_pots>
        <offer_gruu perm="R">off</offer_gruu>
        <web_language perm="R">{{{list_key lang "de_DE" "Deutsch" "en_US" "English"}}}</web_language>
        <date_us_format perm="R">{{{list_key lang "de_DE" "off" "en_US" "on"}}}</date_us_format>
        <call_join_xfer perm="R">on</call_join_xfer>
        <answer_after_policy perm="R">idle</answer_after_policy>
        <peer_to_peer_cc perm="R">off</peer_to_peer_cc>
        <dkey_directory perm="RW">url http://{{{httpip}}}/provisioning/{{{071ipp_mac}}}/pui/phonebook/search?callid=$call-id</dkey_directory>
        <gui_fkey1 perm="RW">keyevent F_DIRECTORY_SEARCH</gui_fkey1>
        <retry_after_failed_register perm="R">3,6:120</retry_after_failed_register>
        <country_code perm="R">{{{list_key lang "de_DE" "0049" "en_US" "0044"}}}</country_code>
        <ignore_security_warning perm="R">on</ignore_security_warning>
        <prioritise_asserted perm="RW">off</prioritise_asserted>
        <goto_monitor_state_on_line_activity perm="R">off</goto_monitor_state_on_line_activity>
        <recording_mechanism perm="RW">NONE</recording_mechanism>
        <provisioning_order perm="R">dhcp:stop pnp:stop tr69:stop redirection:stop</provisioning_order>
        <codec_tos perm="R">184</codec_tos>
        <signaling_tos perm="R">96</signaling_tos>
        {{#fw_less 071ipp_cur_fw "8.7.4"}}
            <prioritise_pbx_number_lookup perm="RW">off</prioritise_pbx_number_lookup>
        {{else}}
            <contact_source_priority perm="RW">Sip Tbook Ldap Memory</contact_source_priority>
        {{/fw_less}}
        
        {{!-- LDAP settings --}}
        {{#if_eq ldap_proxy 'off'}}
            <ldap_over_tls perm="R"></ldap_over_tls>
            <ldap_server perm="R"></ldap_server>
            <ldap_port perm="R"></ldap_port>
            <ldap_base perm="RW"></ldap_base>
            <ldap_username perm="R"></ldap_username>
            <ldap_password perm="R"></ldap_password>
            <ldap_search_filter perm="R"></ldap_search_filter>
            <ldap_number_filter perm="RW"></ldap_number_filter>
            <ldap_name_attributes perm="R"></ldap_name_attributes>
            <ldap_number_attributes perm="R"></ldap_number_attributes>
            <ldap_display_name perm="R"></ldap_display_name>
        {{else}}
            <ldap_base perm="RW">dc=phonebook,{{{ldap_suffix}}}</ldap_base>
            <ldap_password perm="R">{{{ldap_password}}}</ldap_password>
            <ldap_number_filter perm="RW">(&amp;(telephoneNumber=%)(cn=*))</ldap_number_filter>
            <ldap_name_attributes perm="R">cn sn displayName</ldap_name_attributes>
            <ldap_number_attributes perm="R">telephoneNumber mobile</ldap_number_attributes>
            <ldap_display_name perm="R">%cn</ldap_display_name>
            {{#fw_less 071ipp_cur_fw "8.7.3"}}
                <ldap_lookup_ringing perm="R">on</ldap_lookup_ringing>
            {{/fw_less}}
            {{#if vpnconnection}}
                <ldap_port perm="R">389</ldap_port>
                <ldap_over_tls perm="R">off</ldap_over_tls>
            {{else}}
                <ldap_port perm="R">636</ldap_port>
                <ldap_over_tls perm="R">on</ldap_over_tls>
            {{/if}}
            <ldap_server perm="R">{{{httpip}}}</ldap_server>
            <ldap_username perm="R">cn={{{ldap_username}}},dc=devices,{{{ldap_suffix}}}</ldap_username>
            {{!-- Changed ldap settings since Snom firmware 10.1.27.0 --}}
            {{#fw_less 071ipp_cur_fw "10.1.27.0"}}
                <ldap_search_filter perm="R">(|(cn=%)(sn=%))</ldap_search_filter>
                <ldap_number_filter perm="R">(|(&amp;(telephoneNumber=%)(cn=*))(&amp;(mobile=%)(cn=*))(&amp;(homePhone=%)(cn=*)))</ldap_number_filter>
            {{else}}
                <ldap_search_filter perm="R">(|(cn=%*)(sn=%*))</ldap_search_filter>
                <ldap_number_filter perm="R">(|(&amp;(telephoneNumber=%*)(cn=*))(&amp;(mobile=%*)(cn=*))(&amp;(homePhone=%*)(cn=*)))</ldap_number_filter>
                <ldap_search_filter_during_call perm="R">(|(cn=)(sn=))</ldap_search_filter_during_call>
                <ldap_number_filter_during_call perm="R">(&amp;(telephoneNumber=%*)(cn=*))</ldap_number_filter_during_call>
            {{/fw_less}}
        {{/if_eq}}
        
        {{!-- Provision Logos --}}
        {{#fw_less 071ipp_cur_fw "8.9.3"}} {{! Do not deliver this setting for older firmwares }}
        {{else}}
            <custom_bg_image_url perm="R">http://{{{httpip}}}/provisioning/{{{071ipp_mac}}}/logos/{{{logo_path}}}</custom_bg_image_url>
        {{/fw_less}}
        {{#fw_less 071ipp_cur_fw "10.1.21"}} {{! Do not deliver this setting for older firmwares }}
        {{else}}
            <background_color perm="R">242 242 242 0</background_color>
        {{/fw_less}}
        
        {{!-- SIP settings and account preferences --}}
        <call_waiting idx="1" perm="R">{{{bool 011acc_callwaiting}}}</call_waiting>
        <conf_hangup idx="1" perm="R">on</conf_hangup>
        <user_realname idx="1" perm="R">{{{012loc_bez}}}</user_realname>
        <user_name idx="1" perm="R">{{{013pee_username}}}</user_name>
        <user_host idx="1" perm="R">{{{cs_domain}}}</user_host>
        <user_pass idx="1" perm="R">{{{013pee_password}}}</user_pass>
        <user_mailbox idx="1" perm="RW">{{{setting sys.asterisk.dialplan.global.voicebox.watched.value}}}</user_mailbox>
        <user_idle_text idx="1" perm="R">{{{displayname}}}</user_idle_text>
        <user_idle_number idx="1" perm="R">{{{009ext_extension}}}</user_idle_number>
        <user_sipusername_as_line idx="1" perm="R">on</user_sipusername_as_line>
        {{#if_eq voip_sip 'tls'}}
            <user_outbound idx="1" perm="R">{{{httpip}}}:5061;transport=tls</user_outbound>
            <user_srtp idx="1" perm="R">on</user_srtp>
        {{else}}
            {{#if_eq voip_sip 'udp'}}
                <user_outbound idx="1" perm="R">{{{httpip}}}</user_outbound>
                <user_srtp idx="1" perm="R">off</user_srtp>
            {{else}}
                <user_outbound idx="1" perm="R">{{{httpip}}}:5060;transport=tcp</user_outbound>
                <user_srtp idx="1" perm="R">on</user_srtp>
            {{/if_eq}}
        {{/if_eq}}
        <user_savp idx="1" perm="R">mandatory</user_savp>
        <user_auth_tag idx="1" perm="R">off</user_auth_tag>
        <use_contact_in_refer_to_hdr idx="1" perm="">off</use_contact_in_refer_to_hdr>

        {{!-- function key LED preferences --}}
        <led_on perm="R">ON IN_A_CALL CALLING IN_A_MEETING URGENT_INTERRUPTIONS_ONLY BUSY I-Am-Busy DND_ALL DND_SELF ACTIVE INACTIVE BE_RIGHT_BACK SEIZED CONNECTED ON_HOLD OFFHOOK RINGBACK I-Am-Ready AWAY AVAILABLE AVAILABLE_ON_MOBILE AVAILABLE_AT_DESK PhoneHasCall PhoneHasMissedCalls CurrentIdentityHasVoiceMessages PhoneHasVoiceMessages seized_local seized_remote active_local active_remote idle</led_on>
        <led_blink_slow perm="R">PARKED HOLDING I-Am-Almost-Ready PhoneHasCallInStateHolding held_local held_remote KeyConfigActive holding</led_blink_slow>
        <led_blink_medium perm="R">RECORDING MESSAGE DateOngoing DateReminding</led_blink_medium>
        <led_blink_fast perm="R">RINGING PICKUP PhoneHasCallInStateRinging alerting_local alerting_remote</led_blink_fast>
        <led_red perm="R">BUSY DND_ALL DND_SELF I-Am-Busy IN_A_CALL IN_A_MEETING URGENT_INTERRUPTIONS_ONLY UNAVAILABLE seized_remote alerting_remote active_remote held_remote</led_red>
        <led_green perm="R">AVAILABLE AVAILABLE_ON_MOBILE AVAILABLE_AT_DESK I-Am-Ready I-Am-Almost-Ready seized_local alerting_local active_local held_local idle</led_green>
        <led_orange perm="R">AWAY INACTIVE BE_RIGHT_BACK KeyConfigActive holding</led_orange>
    </phone-settings>
    
    {{!-- function keys --}}
    <functionKeys>
        <fkey idx="0" context="active" label="pascom" lp="on">url http://{{{httpip}}}/provisioning/{{{071ipp_mac}}}/pui/menu?callid=$call-id</fkey>
        <!--
        <fkey idx="1" context="active" label="John Doe" lp="on" perm="RW">blf sip:7001@{{{cs_domain}}}|{{{setting sys.asterisk.pickup.prefix.snom}}}</fkey>
        -->
    </functionKeys>
    
    {{!-- local phonebook --}}
    <!--
    <tbook e="2">
        <item context="" type="none" fav="false" mod="true" index="0">
            <name>Jane Doe</name>
            <number>0049991123456</number>
            <number_type>extension</number_type>
        </item>
    </tbook>
    -->
</settings>

Besten Gruß
Sebastian

Hallo @maik und @Sebastian_F,

vielen Dank für die Antworten.
Wie stelle ich das denn mit dem Zertifikat genau an? Also wo bekomme ich den Inhalt für die xml Datei her?

Hallo @b.schliekmann,

du kannst dazu z. B. openssl s_client -showcerts -connect $IP:8884 ausführen (bitte IP deines Pascom Servers ergänzen).
In der Ausgabe findest du zwischen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- den Teil, den du in dem XML zwischen <certificate type="base64"> und </certificate> einfügen musst.

Besten Gruß
Sebastian

Hallo @Sebastian_F,

das habe ich hinbekommen, am Telefon muss ich aber trotzdem erst in der Webconfig das Zertifikat annehmen. Muss ich an der Anlage vorher noch irgendwas machen?
Kann das überhaupt klappen wenn ich nur per IP ohne Namensauflösugn auf die Anlage zugreife?

fkeys und der Username in der zweiten Zeile funktionieren jetzt perfekt. Vielen Dank.
Das mit dem Zertifikat kann so wahrscheinlich nicht gehen.

Ein Punkt der mich noch nervt ist die Kommunikation Snom<->Pascom in Sachen Provisionierung.
Ein Snom welches ein Firmwareupdate erfahren hat meldet das nicht an pascom. In der Geräteübersicht bleibt die alte Softwareversion stehen.
Andersrum werden weiterhin die Anzeigenamen nicht geändert. Wenn ich auf der Pascom den Anzeigenamen eines Benutzers ändere, dann wird das auf dem Telefon nicht angewendet. Auch nicht nach Reboot.
Mache ich was falsch oder geht das einfach nicht?

Wie ist denn die Einstellung deiner Snom für die Provisionierung? Da gibt es auch die Option „ONCE“, dann ziehen sich die Telefone nach nem Neustart die Konfiguration nicht wieder

Die steht auf “settings_only”.
Sollte passen, oder?

In dem vorherigen XML-Template habe ich beim Zertifikat leider einen zusätzlichen <certificates> Tag vergessen. Ich habe das oben nachgebessert - bitte probier das nochmal aus.
Wird die Provisioning-URL via DHCP (Option 66) verteilt, oder ist eine fixe URL gesetzt? Sagt das Log des Telefons etwas über das neue Provisionieren nach dem Reboot?

Besten Gruß
Sebastian

Das geht leider trotz dem zusätzlichen Tag nicht. Ich muss weiterhin das Zertifikat hinzufügen.

Ich setze die Provisioning-URL manuell. Der vorgeschaltete DHCP kann leider keine Option66.

Worauf müsste ich im Log denn achten?

Ein Firmwareupdate über die Anlage funktioniert auch nicht. Ein Neustart wird ausgelöst aber die Firmware nicht aktualisiert. Wenn ich eine andere Basisconfig auf das Telefon anwende passiert ausser einem Reboot auch nichts.

Telefonieren usw geht einwandfrei, aber Änderungen sollte man halt nicht machen müssen.

Ich hab momentan echt Angst meine große Anlage jemals updaten zu müssen auf 18 oder größer.
Mit 17 war alles so schön einfach.

Spricht denn etwas gegen die Verwendung von Let’s Encrpyt oder eines “vollwertigen” Zertifikats? Früher oder später wirst du wohl sonst wieder auf ähnliche Probleme stoßen.
Ich schätze mal das Update und Provisionierungs Problem ist auch auf das Self Signed Cert zurückzuführen. Tritt das auch auf, wenn du eine unsichere Provisioning-URL nimmst?

Im Log des Snoms kannst du einfach nach der Provisioning URL oder IP suchen. In den kommenden Zeilen dürfte sich dann irgendwo herauslesen lassen, warum da ggf. was fehlgeschlagen ist.

Besten Gruß
Sebastian

Hilf mir mal kurz mit den Begrifflichkeiten bitte.
Ich habe eine onsite Pascom 18.11
Diese hat die IP 192.168.0.250, die Prov-Url ist dann entsprechend https://192.168.0.250/blablabla
Diese verwende ich an den Telefonen unter Erweitert->Update->Setting URL
Das ist doch dann ohnehin eine unsichere URL, oder?

Für LetsEncrypt müsste ich ja einen Domainnamen haben, oder?

Für Let’sEncrypt benötigst Du einen Domainnamen (kann auch eine Subdomain sein). Aber wenn das doch ohnehin intern und onsite ist, könntest Du vor diesem Hintergrund auch auf SIPS und SRTP verzichten und sowohl die Provisionierung als auch SIP und Audio unsicher durchführen… Klar, dann kann man im internen Netz schnell und leicht mithören und viele andere tolle Sachen, aber Du bräuchtest halt kein selbst signiertes Zertifikat. Als einen Heldentod wirst Du wohl sterben müssen :wink:

LG
Michael

Ja oder das halt vernünftig machen mit Domainnamen und Certificat die bekommt man schon für 60€ pro Jahr oder halt Lets Encrypt.

1 Like

Ich bin ja so bei Dir Markus :slight_smile:

Ihr habt ja durchaus Recht mit dem Zertifikat.
Allerdings muss ich dann zusätzlich einen DNS-Server aufsetzen um Split-DNS zu realisieren?

Ja das kann sein, aber es gibt halt immer 2 Möglichkeiten richtig und gepfuscht was du machen will ist deine Entscheidung. Wenn du kein Problem mit Zertifikaten haben willst dann mit richtigem Zertifikat. Die Snoms sind da halt echt zickig.

Und wen ich sehe wievielt Zeit du in den Versuch gesteckt hast des falsche richtig hinzubekommen, da hättest du es auch vernünftig machen können, vermute ich.

Na es geht halt auch darum keinen extra Server in Betrieb zu nehmen um nen DNS darauf zu installieren.
Das kostet ja alles extra Geld, Strom, Wartung.
Der vorhandene Router kann das leider alles nicht.

Hi,
von Split DNS bei der pascom würde ich ohnehin abraten, dann eher “hairpinning” verwenden oder extra Interface für interne Geräte schaffen (und hier dann unverschlüsselt arbeiten, sonst ist man ja wieder beim gleichen Zertifikatsthema).

Grüße,
Steve