Aflați mai multe despre cum să apelați o extensie de pe mobil. Cum se scrie numerele de telefon. Despre cele opt și paranteze

Multe organizații folosesc numere de extensie, care sunt un identificator numeric, pentru a comunica cu diferite departamente. Cu toate acestea, un abonat care trebuie să se conecteze cu un anumit angajat are uneori dificultăți. Mai ales adesea apar probleme pentru cei care sună de pe telefonul mobil.

Cum să stabiliți că aveți un număr de extensie în fața dvs.?

Înainte de a forma număr suplimentar de pe un mobil, trebuie să determinați dacă este într-adevăr în fața dvs. Informațiile de contact ale multor companii pentru departamentele cu numere de extensie au un număr de numere după numărul principal, de obicei cuprinse între paranteze. Sau scriu înaintea lor cuvântul „în plus”. Ele reprezintă codul unui angajat sau departament, care este determinat de numărul de serie al dispozitivului pentru conectarea la PBX. În același timp, PBX-ul poate fi virtual și redirecționat de la apeluri către Skype, mobil și obișnuit situat în diferite filiale.

Cum se formează un număr de extensie de pe un mobil?

Spre deosebire de telefonul fix din oraș, telefoanele mobile trec automat la În telefonul fix, trebuie să apăsați * înainte de a forma numărul de extensie, iar acest lucru îl va ajuta să treacă în modul ton. De la telefoanele care au un disc pentru apelare, apelurile către astfel de numere vor fi dificile și posibile doar dacă conexiunea este realizată de operator, și nu de robotul telefonic. Întrebările apar de la proprietarii de smartphone-uri pe Android sau IOS. Tastele cu numere când apelați sunt de obicei pliate. Și este necesar, înainte de a forma un număr de extensie de pe un telefon mobil, să apelați această tastatură pe ecran apăsând o pictogramă simbolică. Pentru telefoanele cu acesta, este o pictogramă sub formă de zece pătrate mici, dintre care nouă sunt situate în partea de sus pe trei rânduri și încă unul în partea de jos. Când formați numere suplimentare de pe mobil, veți auzi sunete caracteristice în difuzor.

Două opțiuni pentru conectarea prin extensie

În primul caz, va trebui să formați numărul principal pentru a apela. Apoi așteptați răspunsul operatorului sau al robotului telefonic și ascultați întregul mesaj. După aceea, trebuie să formați cifrele numărului de extensie și va avea loc conexiunea. Va trebui să suni înapoi dacă ajungi la departamentul greșit, iar persoana care a răspuns la apel refuză să te schimbe. Deși, de obicei, angajații companiilor mari sunt destul de loiali celor care apelează și transferă apelul către departamentul necesar. A doua opțiune despre cum să formați un număr de extensie de pe un mobil este să nu așteptați sfârșitul mesajului, ci să continuați imediat să introduceți numere suplimentare. În acest caz, conexiunea poate eșua sau poate apărea o eroare. Proprietarii de smartphone-uri bazate pe platforme moderne pot reduce timpul de ascultare a întregului mesaj.

Cum să formezi un număr de extensie pe un telefon mobil dacă ai un smartphone?

Pentru proprietari telefoane mobile problema este ca operatorul incepe sa retraga bani din contul de telefon din momentul conectarii. Prin urmare, dacă apelul către linie nu este gratuit, atunci utilizatorii încearcă să nu asculte mesaje cu numele departamentelor și numerelor. Utilizatorii de smartphone-uri pot apela orice extensie folosind butonul de pauză. Pentru a face acest lucru, trebuie să formați numerele necesare, așteptați conexiunea. Apoi apăsați pe pauză (pictograma sa se află de obicei pe ecranul de apel) și introduceți numere suplimentare. Puteți încerca să începeți să introduceți imediat după conectare, fără să apăsați mai întâi butonul de pauză, dar această opțiune nu funcționează întotdeauna. În cazul oricărei erori în acest caz, cel mai bine este să închideți și să sunați înapoi. Asta e tot, acum știi cum să formezi un număr de extensie pe un telefon mobil.

Acest plugin jQuery vă permite să selectați automat o mască de intrare potrivită pe baza începutului introdus al unui număr de telefon. Acest lucru vă permite să faceți introducerea unui număr de telefon pe pagina unui site web mai rapidă și fără erori. În plus, plug-in-ul dezvoltat poate fi utilizat în alte zone, dacă regulile de intrare pot fi reprezentate ca mai multe măști de intrare.

Introducere

Site-urile web necesită introducerea informațiilor despre numărul de telefon. S-a întâmplat că fiecare țară are dreptul să-și stabilească propriile reguli de apelare și lungimea numărului, ca urmare a cărora între rezidenți tari diferite Confuzia apare din când în când: unii sunt obișnuiți să indice numărul cu cifra inițială 8, alții cu cifra inițială 0, iar altele cu semnul +.

Prezentare generală a soluțiilor existente

Pentru a rezolva cumva dificultatea care a apărut și pentru a aduce numerele într-un singur format, există 3 soluții principale:
  1. Utilizatorului i se solicită să introducă un număr folosind o mască de introducere. Avantaj: afișarea clară a numărului minimizează posibile greșeliîn camera. Dezavantaj: fiecare țară are propria ortografie și lungimea numărului.
  2. Utilizatorului i se solicită să selecteze separat o țară și să introducă separat restul numărului; eventual folosind o mască de intrare. Avantaj: Posibilitatea de a utiliza diferite măști de introducere pentru diferite țări (precum și regiuni dintr-o țară). Dezavantaje: Lista țărilor (și regiunilor din cadrul fiecărei țări) poate fi lungă; numărul de telefon încetează să mai existe în întregime (sau este necesară preprocesarea înainte de a salva și afișa numărul).
  3. Puneți un semn + în fața numărului (în afara introducerii) și permiteți introducerea numai a cifrelor. Avantaje: ușurință în implementare. Dezavantaj: lipsa afisarii vizuale a numarului.

Soluție sugerată

Ca urmare, s-a decis modificarea mascai obișnuite de intrare, astfel încât să se schimbe în conformitate cu valoarea curentă a numărului. În plus, pe măsură ce introduceți numărul, se propune afișarea numelui țării determinate. Această abordare, în mod subiectiv, ar trebui să rezolve toate deficiențele soluțiilor enumerate mai sus.

Având în vedere că numărul de țări din lume este relativ mic, s-a decis să se întocmească o listă de măști de intrare pentru toate țările. Ca sursă au fost folosite informațiile publicate pe site-ul Uniunii Internaționale de Telecomunicații.

Culegerea acestor informații a adus multe surprize. În procesul de colectare a informațiilor, a fost necesar să se țină cont de toate opțiuni posibile numere de telefon, inclusiv în interiorul țării. Cu toate acestea, având în vedere un numar mare informații prelucrate manual, este posibil ca inexactitățile să rămână în baza de date colectată. În timp, se plănuiește să se facă corecții la setul inițial.

Implementare software

Implementarea jquery.inputmask a fost folosită ca nucleu al măștii de intrare, care a fost menționat în mod repetat pe Habrahabr. Acest plugin este în prezent în curs de dezvoltare activ și, în plus, este conceput în așa fel încât să fie suficient să scriem extensii pentru el. Cu toate acestea, în această problemă s-a dovedit a fi aproape imposibil să scrieți o astfel de extensie. Nu am modificat sau rescris pluginul original pentru nevoile mele, deoarece. autorul ei continuă munca activă privind extinderea funcționalității, drept urmare aplicarea editărilor mele poate fi problematică. Prin urmare, a trebuit să scriu un plug-in peste nucleul principal, care monitorizează (plus interceptează) influențele externe și modifică datele. Pentru a injecta propriile dvs. de gestionare a acțiunilor externe înaintea principalelor de gestionare a pluginurilor, a fost folosit pluginul de bibliotecă jquery.bind-first.
Sortarea măștilor de intrare permise
Pentru a selecta corect cea mai potrivită mască de intrare, întregul set de măști trebuie mai întâi sortat într-un mod special. La elaborarea regulilor de sortare au fost adoptate următoarele convenții:
  1. Toate caracterele din masca de introducere sunt împărțite în 2 tipuri: simboluri semnificative(în cazul meu, acesta este simbolul # , adică un număr arbitrar și numerele 0-9) și caracterele decoratoare (tot restul).
  2. O altă diviziune de caractere în masca de introducere este caracterele șablon (în cazul meu este caracterul #) și toate celelalte.

Rezultă următoarele reguli de sortare, în ordinea în care sunt aplicate:

  1. La compararea a 2 măști de intrare caracter cu caracter, sunt luate în considerare doar caracterele semnificative (nu decoratorii).
  2. Caracterele de tipar diferite sunt tratate ca fiind egale, iar alte caractere semnificative sunt comparate pe baza codului lor.
  3. Caracterele fără model sunt întotdeauna mai mici decât caracterele tip model și, prin urmare, sunt plasate mai sus.
  4. Cu cât lungimea caracterelor semnificative din masca de introducere este mai mică, cu atât masca de introducere este mai mică și cu atât este mai mare.
Căutați o mască de introducere adecvată
Când se compară textul introdus cu următoarea mască din lista sortată, sunt luate în considerare doar caracterele semnificative ale fiecărei măști. Dacă șirul este mai lung decât masca de intrare, chiar dacă toate caracterele precedente au trecut testul, atunci masca de intrare este considerată nevalidă. Dacă textul de intrare satisface mai multe măști de introducere, atunci prima este returnată. În plus, în masca găsită, toate caracterele semnificative (inclusiv cele care nu sunt șablon) sunt înlocuite cu unul șablon, care este o combinație a tuturor caracterelor permise de oricare dintre caracterele șablon.
Gestionarea și interceptarea evenimentelor
Pentru a preveni conflictele cu gestionatorii de evenimente ai motorului principal de mască de intrare, sunt interceptate următoarele evenimente:
  • Tasta în jos- sunt urmărite tastele Backspace și Delete - pentru a schimba masca curentă de introducere înainte ca handlerul principal să elimine un caracter din text. În plus, apăsarea tastei Inserare, care schimbă modul de introducere a textului, este monitorizată pentru sincronizare.
  • apăsarea tastei- deoarece este posibil ca caracterul de intrare să nu fie permis de masca de intrare originală (deoarece toate caracterele semnificative din acesta sunt înlocuite cu un șablon), trebuie să verificați linie nouă pentru a satisface una dintre măștile permise. Dacă nu există astfel de măști, atunci introducerea caracterelor este renunțată, în caz contrar, masca de intrare este actualizată, după care evenimentul este transferat la handler-ul nucleului.
  • pastă, intrare- lipiți text din clipboard. Înainte de a trece procesarea în nucleu, este selectată o mască de intrare pentru șirul rezultat din lipirea textului din clipboard. Dacă masca de introducere nu a putut fi selectată, textul este trunchiat caracter cu caracter de la sfârșit - până când textul satisface cel puțin o mască de introducere. O operație similară se realizează la corectarea textului din câmpul de introducere prin apelarea funcției val(), precum și la inițializarea măștii de introducere, dacă aceasta este aplicată unui câmp de introducere nevid.
  • trage si lasa, cădere brusca- procesarea este similară cu evenimentul paste.
  • estompa- procesare suplimentară în cazul în care modul de ștergere a textului este activat la pierderea focalizării, dacă nu satisface masca de introducere. Acest eveniment este prins după handlerul principal, spre deosebire de cele anterioare.

Toate evenimentele sunt agățate în spațiul masca de intrare. Acest lucru evită comportamentul incorect la apelarea inputmask după inițializarea suplimentului (deoarece nucleul elimină toți handlerele instalate anterior în spațiul inputmask în timpul inițializării).

Exemplu de utilizare

Format listă de măști
Lista de măști este o matrice JavaScript de obiecte, de preferință cu același set de proprietăți. Cel puțin o proprietate care conține o mască de intrare trebuie să fie prezentă pe toate obiectele matrice. Numele parametrului care conține masca poate fi arbitrar. Mai jos este un fragment dintr-o astfel de matrice:
[ … ( „mască”: „+7(###)###-##-##”, „cc”: „RU”, „name_en”: „Rusia”, „desc_en”: „”, „ name_ru": "Rusia", "desc_ru": "" ), ( "mască": "+250(###)###-###", "cc": "RW", "name_en": " Rwanda", "desc_en": "", "name_ru": "Rwanda", "desc_ru": "" ), ( "mască": "+966-5-####-####", "cc ": "SA", "name_en": "Arabia Saudită", "desc_en": "mobile", "name_ru": "Arabia Saudită", "desc_ru": "mobil" ), ( "mască": "+966- #-###-####", "cc": "SA", "name_en": "Arabia Saudită", "desc_en": "", "name_ru": "Arabia Saudită", "desc_ru": " "), …]
Opțiuni de conectare la plugin
Înainte de a vă conecta, trebuie să descărcați și să sortați lista de măști. Acest lucru se realizează prin executarea următoarei funcții:
$.masksSort = function(maskList, defs, match, key)
  • maskList- o serie de obiecte care stochează măști de intrare (vezi mai sus pentru un fragment al obiectului);
  • defs- o serie de caractere șablon (în cazul meu, acesta este simbolul #);
  • Meci- o expresie regulată care descrie caractere semnificative (în cazul meu este /|#/);
  • cheie- numele parametrului obiectului matrice care conține masca de intrare.

Când este conectat, un obiect special este transmis pluginului, descriindu-i funcționarea. Acest obiect conține următorul set de parametri:

  • masca de intrare- un obiect care conține parametrii trecuți pluginului principal inputmask;
  • Meci- o expresie regulată care descrie personaje semnificative, cu excepția celor șablon;
  • a inlocui- caracter șablon, care va fi înlocuit cu toate caracterele semnificative; poate să nu fie prezent în obiectul definiții al obiectului inputmask;
  • listă- matrice de obiecte care descriu măștile de intrare;
  • listKey- numele parametrului din interiorul obiectului care stochează masca de intrare;
  • onMaskChange- o funcție care este apelată la actualizarea măștii de intrare; ca prim parametru, este transmis un obiect din matrice, a cărui mască de intrare corespunde textului introdus, iar ca al doilea - acuratețea definiției măștii: adevărat - masca de intrare se potrivește complet, fals - sunt necesare caractere suplimentare pentru a determina în mod fiabil masca.

Pentru a inițializa pluginul, trebuie să aplicați metoda inputmasks în câmpul de intrare:
$.fn.inputmasks = function(maskOpts, mode)

  • maskOpts- un obiect care descrie funcționarea pluginului;
  • modul- optional; în în prezent valoarea isCompleted este acceptată - ca urmare, metoda returnează true dacă textul corespunzător măștii corespunzătoare este introdus complet și fals în caz contrar.
Exemplu de conexiune la plugin

Demonstrație

Un exemplu de demonstrație a pluginului dezvoltat este prezentat pe