E.164 Telefon Numarası Biçimi: Dönüştürme ve Doğrulama
E.164 telefon numarası biçimi: kurallar, yerel numaraları örnek tabloyla dönüştürme, WhatsApp ve SMS API gereksinimleri, regex ile libphonenumber ile doğrulama.
Yazar: OmniChannels.ai Editorial Team · İnceleyen: BroadNet Messaging Solutions Team
Entegrasyon
Kısa yanıt
E.164, ITU-T'nin uluslararası numaralandırma planıdır. E.164 numarası; başta artı işareti, ardından ülke kodu ve ulusal numara olacak şekilde, en fazla 15 hane ve boşluk ya da noktalama olmadan yazılır, örneğin +971501234567. Yerel bir numarayı dönüştürmek için ülke kullanıyorsa ulusal trunk önekini (genellikle 0) silin, artı işaretini ve ülke kodunu ekleyin, boşluk ve parantezleri kaldırın.
Bu sayfada
- E.164 biçimi nedir?
- Yerel bir telefon numarasını E.164'e nasıl dönüştürürüm?
- Farklı ülkelerde E.164 numaraları nasıl görünür?
- İtalya neden baştaki 0'ı koruyor?
- SMS ve WhatsApp API'leri neden E.164 ister?
- Kodda numaraları nasıl doğrular ve normalleştiririm?
- Tabloda telefon numaralarını nasıl düzeltirim?
- Örnek: bir müşteri listesini temizlemek
- Sık yapılan hatalar nelerdir?
- OmniChannels.ai nasıl yardımcı olur?
Öne çıkan noktalar
- E.164 numarası artı işareti, ülke kodu ve ulusal numaradan oluşur: toplamda en fazla 15 hane; boşluk, tire ya da parantez yok.
- Dönüştürme, genellikle 0 olan ulusal trunk önekinin silinmesi demektir; ancak her ülkede yoktur: ITU'nun arama prosedürleri tablosu İtalya, İspanya ve Katar için hiçbirini listelemez.
- Meta, WhatsApp gönderim isteklerinde artı işaretini ve ülke arama kodunu eklemeyi önerir; çünkü bunlar olmayan numaraya gönderenin ülke kodu eklenir ve mesaj yanlış kişiye gidebilir.
- Regex numaranın biçimini kontrol eder; libphonenumber gibi bir kütüphane ise numaranın ülkesi için geçerli olup olmadığını kontrol eder.
- Excel baştaki sıfırları silebilir ve uzun sayıları bilimsel gösterimle gösterebilir; bu yüzden telefon sütunlarını Metin olarak biçimlendirilmiş tutun.
Bu rehber, SMS veya WhatsApp için telefon numaralarıyla çalışan ve bunlara bir API'nin kabul ettiği biçimde ihtiyaç duyan pazarlamacılar, analistler ve geliştiriciler içindir. E.164'ün ne olduğunu açıklar, farklı ülkelerin numaralarının nasıl dönüştürüleceğini gösterir; kodda doğrulamayı ve numaraları daha gönderilmeden bozan tablo sorunlarını ele alır.
E.164 biçimi nedir?
E.164, ITU-T tarafından E.164 Önerisi olarak yayımlanan uluslararası kamusal telekomünikasyon numaralandırma planıdır. Gündelik kullanımda bu terim bir numara yazma biçimini anlatır: artı işareti, ülke kodu ve ulusal numara; yalnızca rakamlarla.
Bir E.164 numarasının parçaları şunlardır:
+ülkeden ülkeye değişen uluslararası arama önekini temsil eder (birçok yerde 00, ABD'de 011).- Ülke kodu, bir ila üç hane; örneğin BAE için 971, ABD ve Kanada için 1.
- Ulusal numara, ulusal trunk öneki olmadan numaranın geri kalanı.
Öneri, azami uzunluğu uluslararası önek hariç 15 hane olarak belirler. Yani +971501234567 geçerli bir E.164'tür (12 hane); 17 haneli bir değer ise olamaz. E.164 sözlük maddemiz kısa bir tanım verir.
Yerel bir telefon numarasını E.164'e nasıl dönüştürürüm?
Biçimlendirmeyi kaldırın, varsa ulusal trunk önekini silin, artı işaretini ve ülke kodunu ekleyin.
- Boşlukları, tireleri, noktaları ve parantezleri kaldırın.
050 123 4567,0501234567olur. - Numarada varsa uluslararası arama önekini kaldırın:
00971...veya011...,971...olur. - Ülke kullanıyorsa ulusal trunk önekini silin. Birçok ülkede
0; ABD ve Kanada'da1. - Ülke kodu yoksa ekleyin.
- Artı işaretini ekleyin.
Bunu yapmak için ülkeyi bilmeniz gerekir. 0501234567 yalnızca bir ülkeyle birlikte anlamlıdır; tabloların bu yüzden bir ülke sütunu taşıması gerekir.
Farklı ülkelerde E.164 numaraları nasıl görünür?
Tablo örnekler gösterir. Numaralar gerçek abone değil, açıklayıcı yer tutuculardır. Arama kodları mevzuat verilerimizden, trunk önekleri ITU'nun arama prosedürleri tablosundan gelir.
| Ülke | Arama kodu | Trunk öneki (ITU tablosu) | Yerel biçim (örnek) | E.164 |
|---|---|---|---|---|
| BAE | +971 | 0 | 050 123 4567 | +971501234567 |
| Suudi Arabistan | +966 | 0 | 051 234 5678 | +966512345678 |
| Katar | +974 | listelenmemiş | 5512 3456 | +97455123456 |
| Kenya | +254 | 0 | 0712 345 678 | +254712345678 |
| Birleşik Krallık | +44 | 0 | 07700 900123 | +447700900123 |
| Almanya | +49 | 0 | 0151 12345678 | +4915112345678 |
| Hindistan | +91 | 0 | 098765 43210 | +919876543210 |
| İspanya | +34 | listelenmemiş | 612 345 678 | +34612345678 |
| İtalya (mobil) | +39 | listelenmemiş | 312 345 6789 | +393123456789 |
| İtalya (sabit hat) | +39 | listelenmemiş | 06 1234 5678 | +390612345678 |
| Amerika Birleşik Devletleri | +1 | 1 | (202) 555-0123 | +12025550123 |
ITU tablosu Aralık 2011 tarihli yayımlanmış bir durumdur; bu yüzden onu örüntü için bir rehber sayın ve belirli bir ülkeyi kütüphane ya da düzenleyiciyle doğrulayın.
İtalya neden baştaki 0'ı koruyor?
Çünkü İtalya'da 0, bir trunk öneki değil numaranın parçasıdır. ITU'nun arama prosedürleri tablosu İtalya'yı (ülke kodu 39) ulusal önek olmadan gösterir; yani silinecek bir şey yoktur. İtalyan coğrafi numaraları 0 ile başlar, Roma tarzı 06 1234 5678 örneğindeki gibi, ve uluslararası biçimde de onu korur: +390612345678. İtalyan mobil numaraları 3 ile başlar ve korunacak bir sıfırı yoktur; dolayısıyla 312 345 6789, +393123456789 olur.
"Sıfırı her zaman sil" kuralını topyekûn uygulamayın. Aynı tablo İspanya ve Katar için de trunk öneki listelemez ve veriler değişir; elle kontrol edemediğiniz her şey için kütüphane kullanmanın iyi bir nedeni de budur.
SMS ve WhatsApp API'leri neden E.164 ister?
Çünkü yönlendirme belirsiz olmayan bir numaraya dayanır. Ülke kodu olmayan bir numara birçok ülkeye ait olabilir; bu yüzden platform yanlış pazara gönderebilir, yanlış gönderici kimliği kurallarını uygulayabilir ve yanlış tarifeyi faturalayabilir. Tarifeler, gönderici kimliği kaydı ve tanıtım gönderim saatlerinin hepsi hedef ülke başına uygulanır ve hedefi belirleyen ülke kodudur.
Meta, WhatsApp numaraları hakkında ne diyor?
Meta'nın WhatsApp kullanıcı telefon numarası biçimlerine ilişkin belgeleri, mesaj gönderme isteklerinde artı işareti, tire, parantez ve boşlukların desteklendiğini söyler ve artı işareti ile ülke arama kodunun eklenmesini şiddetle önerir. Artı işareti eksikse numaraya gönderenin ülke arama kodu eklenir; bu da mesajın yanlış bir numaraya gitmesine yol açabilir. Meta'nın örneği: Hindistan'daki (kod 91) bir gönderici için (631) 555-1234, +916315551234 numarasına teslim edilir; +1 (631) 555-1234 ise doğru şekilde teslim edilir. Meta ayrıca Brezilya ve Meksika için Cloud API'nin bazı numaralarda görünen ek öneki değiştirebileceğini belirtir ve bunu standart davranış olarak niteler.
Güvenli yaklaşım: temiz E.164'ü saklayın ve tam olarak onu gönderin.
SMS için durum nedir?
SMS API'leri de tam uluslararası numarayı bekler. Bazıları artı işaretsiz rakamları ister; biçim API'ler ve protokoller arasında farklılaşır, bu yüzden kullandığınız API'nin belgelerine bakın ve kendi numaranızla test edin. Çalışan örnekler için API ile SMS gönderme ve API ile WhatsApp mesajı gönderme yazılarına bakın.
Kodda numaraları nasıl doğrular ve normalleştiririm?
Hızlı biçim kontrolü için regex, gerçek doğrulama için kütüphane kullanın.
Yaygın bir E.164 biçim kontrolü:
// Plus, a non-zero first digit, then 1 to 14 more digits: 15 digits at most
const E164 = /^\+[1-9]\d{1,14}$/;
function looksLikeE164(value) {
return E164.test(value);
}
looksLikeE164("+971501234567"); // true
looksLikeE164("0501234567"); // false: no plus or country code
looksLikeE164("+0501234567"); // false: country codes do not start with 0
Regex yalnızca uzunluğu ve karakterleri kontrol eder. Böyle bir numara olmamasına rağmen +99999999999 değerini kabul eder. Gerçek doğrulama için, uluslararası telefon numaralarını ayrıştırma, biçimlendirme ve doğrulama kütüphanesi olan, Java, C++ ve JavaScript için bulunan ve diğer dillerde topluluk portları olan Google'ın açık kaynaklı libphonenumber kütüphanesini kullanın. README dosyası isValidNumber işlevini, uzunluk ve önek bilgisini kullanan bir bölge için tam doğrulama olarak tanımlar ve ayrıştırılmış bir numaranın E.164 olarak biçimlendirilmesini gösterir.
# pip install phonenumbers (a Python port of libphonenumber)
import phonenumbers
def to_e164(raw, default_region):
try:
number = phonenumbers.parse(raw, default_region) # e.g. "AE", "SA", "GB"
except phonenumbers.NumberParseException:
return None
if not phonenumbers.is_valid_number(number):
return None
return phonenumbers.format_number(number, phonenumbers.PhoneNumberFormat.E164)
print(to_e164("050 123 4567", "AE")) # +971501234567 if the number is valid for the UAE
print(to_e164("+44 7700 900123", "GB"))
Portları dış geliştiriciler yazar; bu yüzden seçtiğiniz portun kalitesini kontrol edin. Müşterinizin ülkesinden aldığınız varsayılan bölgeyle ayrıştırın, sonra E.164 sonucunu saklayın. Kurallar değişirse yeniden ayrıştırabilmek için ham girdiyi de saklayın.
Normalleştirmeyi gönderim anında değil, giriş noktasında yapın: kayıt formunda, CRM içe aktarımında veya API'de. İki farklı yazılmış numara, aynı kampanyayı alan iki kişi olur.
Tabloda telefon numaralarını nasıl düzeltirim?
Numaraları girmeden veya yapıştırmadan önce telefon sütununu Metin olarak biçimlendirin. Yaygın sorunlar şunlardır:
| Sorun | Ne olur | Çözüm |
|---|---|---|
| Baştaki sıfır silinir | 0501234567, 501234567 olur |
Önce hücreleri Metin olarak biçimlendirin; ya da girişe kesme işaretiyle başlayın |
| Bilimsel gösterim | Uzun bir sayı 9.71501E+11 olarak görünür |
Metin olarak biçimlendirin; Excel 15 haneli sayısal duyarlılık tutar |
| Artı işareti kaybolur | Sayısal bir hücre + işaretini koruyamayabilir |
Metin olarak biçimlendirin, sonra sütunun ilk karakterlerini kontrol edin |
| Boşluk ve tireler | 971 50 123 4567 |
Bul ve Değiştir ile ya da SUBSTITUTE ile kaldırın |
| Ülke kodu eksik | Yalnızca yerel numaralar | Bir ülke sütunu ekleyin; numarayı formülle oluşturun |
Microsoft, Excel'in baştaki sıfırları sildiğini ve büyük sayıları bilimsel gösterime çevirdiğini, Metin biçimi uygulanmadan önce girilen numaraların yeniden girilmesi gerektiğini belgeler. Bir CSV dosyasını doğrudan açtığınızda Excel her sütuna varsayılan biçimlerini uygular; telefon sütununu metin olarak işaretlemek için Metin İçeri Aktarma Sihirbazı'nı (Text Import Wizard) veya From Text/CSV'yi kullanın.
A sütununda 050 123 4567 olarak saklanan bir BAE mobil listesi için bu formül E.164'ü metin olarak oluşturur:
="+971"&RIGHT(SUBSTITUTE(A2," ",""),9)
Boşluklar kaldırıldıktan sonra son dokuz haneyi tutar; bu yüzden yalnızca bu biçimdeki numaralara uyar. Sonucu kopyalayın ve CSV olarak kaydetmeden önce değer olarak yapıştırın. Telefon numarası biçimlendirici formül olmadan numara dönüştürür; Excel veya CSV'den toplu SMS gönderme rehberimiz ise tam yükleme iş akışını gösterir.
Örnek: bir müşteri listesini temizlemek
Dubai'li bir perakendeci olan "Souq Rafiq" (kurgusal), üç sistemden 0501234567, 971 50 123 4567, +971-50-123-4567 ve 00971501234567 gibi numaralarla 8.000 kişiyi dışa aktarır.
- Analist, her müşterinin fatura ülkesinden bir ülke sütunu ekler.
- Bir betik her satırı ülkeyi varsayılan bölge alarak ayrıştırır; böylece dört biçimin hepsi
+971501234567olur. - Doğrulamada başarısız olan satırlar gönderilmek yerine bir inceleme sayfasına gider.
- Mükerrer kayıtlar normalleştirmeden sonra silinir; bu da dört biçimi tek kişiye indirir.
- Kampanyadan önce bir HLR sorgusu etkin olmayan numaraları işaretler. Bkz. HLR sorgusu açıklaması.
- Temiz sütun Metin olarak saklanır ve yüklenir.
Mükerrer kontrolünü çalıştıran şey önce normalleştirmektir; ondan önce aynı müşteri dört kişi gibi görünüyordu.
Sık yapılan hatalar nelerdir?
- Baştaki sıfırı her zaman silmek. İtalya gibi bazı ülkelerde trunk öneki yoktur.
- Sıfırı koruyup ülke kodunu eklemek; sonuç
+9710501234567olur. - WhatsApp'a artı işareti olmadan göndermek; gönderenin ülke kodu eklenir.
- Regex'i doğrulama olarak kullanmak. Geçerliliği değil, biçimi kontrol eder.
- Excel'in telefonları sayı sanmasına izin vermek; sıfırlar kaybolur ya da bilimsel gösterime geçilir.
- Giriş anında değil, gönderim anında normalleştirmek.
- Geçerli bir biçimin ulaşılabilir bir numara olduğunu varsaymak. Taşınmış veya kapatılmış numaralar yine de başarısız olur.
- Statik bir tabloya güvenmek. Numaralandırma planları değişir; bakımı yapılan bir kütüphane kullanın.
OmniChannels.ai nasıl yardımcı olur?
OmniChannels.ai, SMS ve WhatsApp için uluslararası numaraları tek bir REST API üzerinden kabul eder ve kampanyaları önizleme ve mükerrer kayıt filtrelemeyle Excel ve CSV yüklemelerini kabul eder. BroadNet, HLR ve numara sorgusu sunar; böylece iyi biçimlendirilmiş bir numaranın etkin olduğunu kontrol edebilirsiniz. Tam istek alanları için SMS API belgelerini ve WhatsApp API belgelerini okuyun ya da devreye alma için ekibimizle konuşun.
Sık sorulan sorular
E.164 biçimi nedir?
E.164, ITU-T E.164 Önerisi ile tanımlanan uluslararası telefon numaralandırma planıdır. Günlük kullanımda E.164 numarası; artı işareti, ülke kodu ve yalnızca rakam olarak yazılmış ulusal numaradan oluşur ve toplamda en fazla 15 hane içerir. Bir numarayı dünya genelinde benzersiz tanımlar; mesajlaşma platformları ve API'ler bu yüzden onu ister.
Telefon numarasını E.164'e nasıl dönüştürürüm?
Boşlukları, tireleri ve parantezleri kaldırın. Ülke kullanıyorsa ulusal trunk önekini, genellikle baştaki 0'ı silin. Artı işaretini ve ülke kodunu ekleyin. Böylece BAE numarası 050 123 4567, +971501234567 olur. İtalya gibi ülkeler sabit hat numaralarının baştaki 0'ını korur; ülke kuralını kontrol edin veya bir kütüphane kullanın.
Bir E.164 numarası kaç hane olabilir?
Ülke kodu ve ulusal numara dahil, uluslararası arama öneki hariç en fazla 15 hane. Artı işareti hane değildir. Birçok ulusal numara çok daha kısadır. 15 haneden uzun bir değer geçerli bir E.164 numarası olamaz ve genellikle hatalı yapıştırma ya da bozulmuş bir tablo hücresi anlamına gelir.
WhatsApp API artı işaretine ihtiyaç duyar mı?
Meta'nın belgeleri, mesaj gönderme isteklerinde artı işareti, tire, parantez ve boşluğun desteklendiğini söyler ve artı işareti ile ülke arama kodunun eklenmesini şiddetle önerir. Artı işareti olmazsa numaraya gönderenin ülke arama kodu eklenir; bu da mesajın farklı, yanlış bir numaraya gitmesine yol açabilir. Güvende kalmak için tam E.164 gönderin.
Excel neden sıfırı siliyor veya telefon numaralarımı değiştiriyor?
Excel, sayı olarak yazılan telefon numarasını sayısal değer sayar. Microsoft, bunun baştaki sıfırları sildiğini ve Excel 15 haneli duyarlılık tuttuğu için uzun sayıları bilimsel gösterimle gösterdiğini belgeler. Numaraları girmeden veya yapıştırmadan önce sütunu Metin olarak biçimlendirin ya da girişlere kesme işaretiyle başlayın ve daha önce yazılan numaraları yeniden girin.
Geçerli bir E.164 numarası aynı zamanda ulaşılabilir bir numara mıdır?
Hayır. Bir numara doğru biçimlendirilmiş olsa da atanmamış, kapatılmış ya da taşınmış olabilir. Biçim doğrulaması, bir ülke için şekli ve uzunluğu kontrol eder. Bir numaranın etkin olup olmadığını ve hangi ağda bulunduğunu öğrenmek için büyük bir gönderimden önce HLR veya numara sorgusu kullanın.
Kaynaklar
- Recommendation ITU-T E.164: The international public telecommunication numbering plan
- Dialling procedures (international prefix, national (trunk) prefix and national (significant) number), ITU Operational Bulletin No. 994, 15.XII.2011
- WhatsApp user phone number formats — WhatsApp Business Platform, Meta for Developers
- Keeping leading zeros and large numbers — Microsoft Support
- libphonenumber — Google, open-source library on GitHub
Okumaya devam edin
Diğer rehberlerEntegrasyon
SMS ile OTP Otomatik Doldurma: Android, iOS ve Web Formatları
OTP otomatik doldurma Android, iOS ve webde nasıl çalışır: SMS Retriever hash'i, alana bağlı kodlar, WebOTP, üç platforma uyan tek mesaj ve WhatsApp.
9 dk okuma
Entegrasyon
WhatsApp Cloud API Hız (Throughput) ve Oran Limitleri Açıklandı
WhatsApp Cloud API hız ve oran limitleri: saniyedeki mesaj sayısı, nasıl artırılır, çift ve Graph API limitleri, hata kodları ve geri çekilmeyle yeniden deneme.
9 dk okuma
Pazarlama
WhatsApp ve SMS ile Otomatik Randevu Hatırlatma Rehberi
Klinik, güzellik salonu ve otel gibi işletmeler için WhatsApp ve SMS randevu hatırlatmaları: gönderim zamanı, şablonlar, onay-erteleme butonları ve SMS yedeği.
8 dk okuma
