Agar tizimingiz Unicode tufayli faqat bir nechta SMS yuborayotgani sababli SMS xarajatlaringiz keskin oshib borayotganini sezgan bo'lsangiz, buni qanday to'xtatish kerakligi hozirda sizni eng ko'p o'ylantirayotgan savol bo'lishi tabiiy. Tasodifiy bitta "aqlli" qo'shtirnoq (smart quote) yoki emoji oddiy, arzon xabarni bir zumda uchta alohida pullik segmentga aylantirishi va marketing hamda operatsion byudjetingizni sovurishi mumkin.

1-qadam: Unicode nega SMS-larni bir nechta segmentga bo'lishga majbur qilishini tushunib oling

SMS shlyuzi (gateway) bitta xabarni bir nechta pullik segmentga bo'lib yuborishini to'xtatish uchun, avvalo, SMS kodlashning texnik mexanizmini tushunishingiz kerak. An'anaviy telekommunikatsiya tarmoqlari matnli xabarlar uchun ikkita asosiy kodlash standartidan foydalanadi: GSM-7 va UCS-2 (Unicode).

Standart GSM-7 kodlashida bitta SMS segmenti 160 tagacha belgidan iborat bo'lishi mumkin. Ushbu belgilar to'plamiga standart lotin harflari (A-Z, a-z), raqamlar (0-9) va bir nechta keng tarqalgan tinish belgilari kiradi. Biroq xabaringizda ushbu asosiy to'plamdan tashqaridagi bitta belgi — masalan, egri qo'shtirnoq (’), urg'uli harf (á, é, ö) yoki emoji paydo bo'lishi bilanoq, butun xabarning kodlanishi avtomatik ravishda UCS-2 ga o'tadi.

Xabaringiz UCS-2 Unicode kodlashiga o'tganda, bitta segment uchun belgilar chegarasi 160 tadan atigi 70 ta belgiga tushib qoladi. Agar xabaringiz 140 ta belgidan iborat bo'lsa, u bitta GSM-7 segmentiga osongina joylashadi. Ammo UCS-2 da xuddi shu 140 ta belgi uchun ikkita alohida segment talab qilinadi. Twilio, Vonage va MessageBird kabi an'anaviy API provayderlari sizdan har bir segment uchun haq oladi, ya'ni bitta xabar narxi bir zumda ikki yoki uch baravar oshadi.

Kodlash standartiMaksimal belgilar (1 segment)Maksimal belgilar (Ko'p segmentli)Ko'p uchraydigan qo'zg'atuvchi belgilar
GSM-7160 ta belgiHar bir segment uchun 153 ta belgiStandart ingliz tili harflari, raqamlar, asosiy tinish belgilari
UCS-2 (Unicode)70 ta belgiHar bir segment uchun 67 ta belgiEmojilar, "aqlli" qo'shtirnoqlar (“, ”), nollotin alifbolari, urg'uli harflar (é, ñ)

Ushbu holat nega ilovangiz Unicode tufayli faqat bir nechta SMS yuborishini tushuntiradi. Buni hal qilish uchun siz kiritiladigan ma'lumotlarni qat'iy tozalashingiz (sanitize) yoki uzun va zamonaviy matnli xabarlarni yuborganingiz uchun jarima solmaydigan arzon SMS API xizmatiga o'tishingiz kerak.

2-qadam: Kodingizdagi Unicode belgilarini olib tashlang yoki almashtiring

Unicode bo'linishlarini to'xtatishning eng tezkor dasturiy usuli — xabarni SMS shlyuziga yuborishdan oldin uning tarkibini tozalashdir. Backend tizimingizda GSM-7 standartiga kirmaydigan belgilarni olib tashlaydigan yoki ularni eng yaqin GSM-7 muqobillariga almashtiradigan yordamchi funksiya yozishingiz mumkin.

Quyida oddiy regex shablonlari va satrlarni almashtirish qoidalaridan foydalangan holda buni turli dasturlash tillarida qanday amalga oshirish mumkinligi ko'rsatilgan.

Python tilida amalga oshirish

In Python, you can use the unicodedata module to normalize your strings, stripping accents and converting smart quotes back to standard straight quotes:

import unicodedata
import re

def clean_for_gsm7(text):
    # Replace common smart quotes and dashes
    replacements = {
        u'\u201c': '"', u'\u201d': '"',
        u'\u2018': "'", u'\u2019': "'",
        u'\u2013': '-', u'\u2014': '-'
    }
    for unicode_char, gsm_char in replacements.items():
        text = text.replace(unicode_char, gsm_char)
    
    # Normalize and strip accents
    normalized = unicodedata.normalize('NFKD', text)
    ascii_text = normalized.encode('ascii', 'ignore').decode('utf-8')
    
    # Remove any remaining non-GSM-7 characters
    gsm7_regex = re.compile(r'[^\n\r a-zA-Z0-9^{}\\\[~\]|€$@!"#%&\'()*+,-./:;<=>?_]')
    cleaned_text = gsm7_regex.sub('', ascii_text)
    
    return cleaned_text

message = "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! 😊"
print(clean_for_gsm7(message))
# Output: "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! "

Node.js (JavaScript) tilida amalga oshirish

For JavaScript developers, you can use a similar approach using regular expressions to strip out any characters that do not conform to the GSM-7 standard:

function sanitizeToGSM7(text) {
    const smartReplacements = {
        '[\u201c\u201d]': '"',
        '[\u2018\u2019]': "'",
        '\u2013': '-',
        '\u2014': '-'
    };

    let cleaned = text;
    for (const [pattern, replacement] of Object.entries(smartReplacements)) {
        cleaned = cleaned.replace(new RegExp(pattern, 'g'), replacement);
    }

    // Remove accents
    cleaned = cleaned.normalize('NFD').replace(/[\u0300-\u036f]/g, '');

    // Keep only GSM-7 compatible characters
    const gsm7Pattern = /[^\n\r a-zA-Z0-9^{}\\\[~\]|€$@!"#%&\'()*+,-.\/:;<=>?_]/g;
    return cleaned.replace(gsm7Pattern, '');
}

const rawMessage = "Your order is ready for pickup! 🚗";
console.log(sanitizeToGSM7(rawMessage)); 
// Output: "Your order is ready for pickup! "

3-qadam: "Aqlli" qo'shtirnoqlar va urg'ularni GSM-7 muqobillariga o'tkazing

Ko'pincha Unicode belgilari xabarlaringizga Microsoft Word yoki Google Docs kabi matn muharrirlaridan nusxa ko'chirib olinganda (copy-paste) kirib qoladi. Ushbu muharrirlar standart to'g'ri qo'shtirnoqlarni (' va ") avtomatik ravishda egri "aqlli" qo'shtirnoqlarga (, , , ) aylantiradi.

Ushbu kichik o'zgarishlar tufayli tizimingiz bir nechta SMS yuborishining oldini olish uchun belgilar mosligi jadvalini (mapping table) sozlashingiz mumkin. Bu matnning o'qilishini saqlab qolgan holda, 70 belgilik UCS-2 chekloviga tushib qolmaslik imkonini beradi.

  • va belgilarini standart apostrof ' belgisiga o'tkazing
  • va belgilarini standart qo'shtirnoq " belgisiga o'tkazing
  • Uzun chiziqlar () va o'rtacha chiziqlarni () standart defis (-) belgisiga o'tkazing
  • é, á, í kabi urg'uli harflarni ularning urg'usiz muqobillari e, a, i ga o'tkazing

Ushbu belgilarni aniq moslashtirish orqali siz xabarlaringizning professional ko'rinishini saqlab qolasiz va shu bilan birga qat'iy ravishda bitta segment chegarasida qolasiz. Bu, ayniqsa, avtomatlashtirilgan uchrashuv eslatmalarini yuborishda operatsion xarajatlarni past darajada ushlab turishi kerak bo'lgan stomatologiya klinikalari, ta'mirlash ustaxonalari va til maktablari kabi mahalliy xizmat ko'rsatish korxonalari uchun juda foydalidir.

4-qadam: Segmentlar uchun qat'iy tarifga ega SMS shlyuziga o'ting

Unicode belgilarini olib tashlash vaqtinchalik yechim bo'lsa-da, bu sizni brendingiz ohangidan voz kechishga majbur qiladi. 2026-yilda mijozlar tabiiy muloqotni, jumladan emojilar, mahalliy urg'ular va professional formatlashni kutishadi. Shunchaki yuqori aloqa to'lovlaridan qochish uchun mijozlar bilan muloqotni asosiy ASCII belgilari bilan cheklashga endi hojat yo'q.

Twilio, Plivo va MessageBird kabi an'anaviy bulutli agregatorlar har bir ma'lumot paketi uchun operator to'lovlarini to'lashi shart bo'lganligi sababli qat'iy ravishda har bir segment uchun hisob-kitob qilishadi. Bundan tashqari, ushbu eski platformalardan foydalanish murakkab A2P SMS ro'yxatdan o'tish jarayonidan o'tishni, 10DLC operator ruxsatnomalarini olishni va oylik takroriy to'lovlarni to'lashni talab qiladi.

Tobora ommalashib borayotgan muqobil variant — MySMSGate kabi Android-ga asoslangan SMS shlyuzidan foydalanishdir. MySMSGate sizning shaxsiy Android telefonlaringiz va SIM-kartalaringizni to'liq ishlaydigan SMS yuborish qurilmasiga aylantiradi. Xabarlaringiz bevosita telefoningizning SIM-kartasi orqali yuborilganligi sababli (u odatda cheksiz yoki juda arzon mahalliy SMS paketlarini o'z ichiga oladi), siz an'anaviy segmentga asoslangan hisob-kitobni butunlay chetlab o'tasiz.

MySMSGate xabaringizda Unicode belgilari, emojilar bor-yo'qligidan yoki bir nechta segmentdan iboratligidan qat'i nazar, yuborilgan har bir SMS uchun $0.02 miqdorida qat'iy tarif undiradi. Hech qanday oylik obunalar, shartnomalar va operator tomonidan ro'yxatdan o'tkazish kechikishlari yo'q. Agar xabar yetkazilmasa, balansingiz avtomatik ravishda qaytariladi.

Agar siz ommaviy SMS taqqoslash, ishonchlilik va yetkazib berish stavkalari bo'yicha eng yaxshi SMS API muqobillarini qidirayotgan bo'lsangiz, Android SMS shlyuziga o'tish butun Unicode hisob-kitob muammosini ildizidan hal qiladi.

5-qadam: Bir nechta telefon raqamlaridan matnli xabarlarni boshqarishni sozlang

Bir nechta hududlarda faoliyat yuritadigan mahalliy xizmat ko'rsatish korxonalari uchun xabarlar infratuzilmasini boshqarish tezda murakkablashishi mumkin. Agar siz bir nechta filialni — masalan, beshta stomatologiya klinikasi yoki uchta avtoservisni boshqarayotgan bo'lsangiz, sizga bitta markazlashtirilgan interfeysdan bir nechta telefon raqamlaridan matnli xabarlarni boshqarishni qo'llab-quvvatlaydigan tizim kerak bo'ladi.

MySMSGate yordamida bitta hisob qaydnomasi paneliga cheksiz miqdordagi Android qurilmalarini ulashingiz mumkin. Bu sizga bir nechta raqamlarni muammosiz boshqarish imkonini beradi:

  1. Hisob yarating: API kalitingizni olish uchun MySMSGate saytida ro'yxatdan o'ting.
  2. Android ilovasini o'rnating: Android qurilmalaringizga MySMSGate ilovasini yuklab oling.
  3. QR-kod orqali ulaning: Har bir telefon kamerasi yordamida veb-paneldagi QR-kodni skanerlang. Bu qurilmalarni murakkab API kalitlarini kiritmasdan darhol markaziy hisobingizga bog'laydi.
  4. Ikki SIM-kartani boshqarish: Agar telefonlaringiz Dual SIM-ni qo'llab-quvvatlasa, xabarlaringizni aynan qaysi SIM-kartadan yuborishni to'g'ridan-to'g'ri panelingizda yoki API so'rovingizda tanlashingiz mumkin.

Ushbu ko'p qurilmali tizim chiquvchi bildirishnomalarni mijozlaringiz allaqachon taniydigan mahalliy raqamlar orqali yo'naltirish imkonini beradi va bu xabarlarning ochilishi hamda javob berish ko'rsatkichlarini sezilarli darajada yaxshilaydi. Barcha kiruvchi javoblar avtomatik ravishda veb-ga asoslangan Web Conversations panelingizga yo'naltiriladi, bu esa to'g'ridan-to'g'ri kompyuteringizdan real vaqt rejimida ikki tomonlama suhbat qurish imkonini beradi.

6-qadam: REST API orqali birinchi Unicode-xavfsiz SMS-ni yuboring

Agar siz mustaqil dasturchi (indie developer), frilanser yoki texnik biznes egasi bo'lsangiz, MySMSGate-ni dasturiy ta'minotingizga integratsiya qilish juda oson. Platforma minimal sozlamalar bilan SMS bildirishnomalarini yuborish imkonini beruvchi toza, yagona endpointli REST API-ni taklif etadi.

Quyida cURL yordamida SMS yuborish uchun POST so'rovini yuborish misoli keltirilgan. E'tibor bering, siz segment narxi oshishidan xavotirlanmasdan emojilar va maxsus Unicode belgilarini kiritishingiz mumkin:

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "message": "Your vehicle is ready for pickup! 🚗 Please reply to this message if you have any questions.",
    "device_id": "your_device_id",
    "sim_slot": 1
  }'

Batafsilroq dasturlash tillaridagi kodlar uchun rasmiy MySMSGate API hujjatlari bilan tanishishingiz mumkin. Unda Python, Node.js, PHP, Go va Ruby tillari uchun tayyor kod parchalari, shuningdek, Zapier, Make.com va n8n kabi avtomatlashtirish platformalari uchun tayyor konnektorlar va plaginlar mavjud.

Tez-tez beriladigan savollar

Quyida Unicode SMS bo'linishi, belgilar chegaralari va hisob-kitob tizimiga oid eng ko'p beriladigan savollarga javoblar keltirilgan.

Nega bitta emoji SMS-larimni bir nechta xabar bo'lib ketishiga sabab bo'ladi?

Standart matnli xabarlar GSM-7 kodlashidan foydalanadi, bu har bir segment uchun 160 tagacha belgiga ruxsat beradi. Emojilar GSM-7 belgilar to'plamiga kirmaydi. Emoji qo'shganingizda, operator butun xabarni UCS-2 (Unicode) kodlashiga o'tkazishi kerak, bu esa segment chegarasini 70 belgiga tushiradi. Agar xabaringiz 70 belgidan uzun bo'lsa, u bir nechta segmentga bo'linadi va an'anaviy API xizmatlari har bir segment uchun alohida haq oladi.

Yuborishdan oldin matnimda Unicode bor-yo'qligini qanday tekshirishim mumkin?

GSM-7 standartiga kirmaydigan belgilarni aniqlash uchun onlayn SMS uzunligi kalkulyatorlaridan foydalanishingiz yoki kodingizda oddiy regex qidiruvini ishga tushirishingiz mumkin. Shuningdek, chiquvchi SMS navbatiga yuborishdan oldin ma'lumotlar bazangizdan GSM-7 bo'lmagan belgilarni belgilaydigan yoki olib tashlaydigan tekshirish skriptlarini yozishingiz mumkin.

MySMSGate Unicode yoki ko'p segmentli xabarlar uchun qo'shimcha haq oladimi?

Yo'q. Har 160 yoki 70 belgili segment uchun haq oladigan Twilio yoki Vonage kabi an'anaviy API-lardan farqli o'laroq, MySMSGate yuborilgan har bir xabar uchun $0.02 miqdorida qat'iy haq oladi. Xabar to'g'ridan-to'g'ri Android telefoningiz SIM-kartasi orqali yuborilganligi sababli, siz segment uchun to'lov qilmaysiz, bu esa yashirin to'lovlardan xavotirlanmasdan emojilar va uzun xabarlarni yuborish imkonini beradi.

Android SMS shlyuzidan foydalanish uchun menga operator yoki 10DLC ro'yxatidan o'tish kerakmi?

Yo'q. MySMSGate xabarlarni shaxsiy jismoniy Android telefoningiz va SIM-kartangiz orqali yo'naltirganligi sababli, xabarlaringiz standart shaxslararo (P2P) trafik sifatida yuboriladi. Bu shuni anglatadiki, siz murakkab, qimmat va ko'p vaqt talab qiladigan A2P 10DLC ro'yxatidan o'tishingiz yoki operator ruxsatini kutishingiz shart emas.