esmska icon indicating copy to clipboard operation
esmska copied to clipboard

Délka SMS s diakritikou koliduje s některými branami

Open kparal opened this issue 10 years ago • 6 comments

priklad: chcem poslat sms skopirovanu z napriklad
http://kecy.roumen.cz/roumingJokes.php?id=1694#1694 text:

Medici jdou s primářem do pokoje a pacient si ho honí pod peřinou.
Medici:" ??? "
Primář:" To je přetlak semene, pacient si ho snaží uvolnit, normální problém"
A v druhém pokoji vidí jak chlápkovi sestra kouří.
Medici:" ??? "
Primář:" Stejný problém, jiná pojišťovna"

pri pouziti brany SMSdiscount, dostavam zo servera hlasku:

#### WEB CONTENT START ####

              <?xml version="1.0" encoding="utf-8"?> 

              <SmsResponse>

              <version>1</version>

              <result>0</result> 

              <resultstring>failure</resultstring>

              <description>The text message you are trying to send is larger than
160 characters, please shorten your message.</description>

              <endcause></endcause>

              </SmsResponse>




ale script je nastaveny na 160charov, blizsie zistovanie odhalilo, ze
request je poslany v tvare:

FINE: Getting url:
https://www.smsdiscount.com/myaccount/sendsms.php?username=xxxxx&password=xxx&from=%2B421xxxxxx&to=%2B42xxxx&text=Medici+jdou+s+prim%C3%A1%C5%99em+do+pokoje+a+pacient+si+ho+hon%C3%AD+pod+pe%C5%99inou.%0AMedici%3A%22+%3F%3F%3F+%22%0APrim%C3%A1%C5%99%3A%22+To+je+p%C5%99etlak+semene%2C+pacient+si+ho+sna%C5%BE%C3%AD+uvolnit%2C+norm%C3%A1ln%C3%AD

Original issue reported on code.google.com by tomas.kovacik on 2009-12-05 12:29:07

kparal avatar May 23 '15 20:05 kparal

1. V nastavení je volba pro odstraňování diakritiky. Tu jsi vypnul? Jinak by se měla
diakritika automaticky ze zprávy odstranit. Pokud ne, je to chyba.
2. Jak jsi přišel na to, že je problém s kódováním iso-8859-2? Chtěl jsi tím prostě
říct, že je problém poslat znaky, které nepatří do ASCII? Protože žádné kódování se
nikde neuplatňuje, posílá se to GET požadavkem, tudíž se na to aplikuje standardní
URL encoding (který vypadá v pořádku).
3. Pokud v SMS posíláš non-ASCII znaky, tak se standardní délka zkracuje na cca 70
znaků. Zkus poslat kratší zprávu, projde to v pohodě? (samotné znaky může smsdiscount
sám oříznout na klasické ascii, ale dojít by to mělo). Pokud to tak je, tak bych to
viděl na chybnou hlášku z smsdiscount - měla by specifikovat správnou délku zprávy,
když se použije rozšířená znaková sada (i když v podstatě "160 znaků" je taky
technicky správně, akorát některé naše znaky zabírají několik standardních znaků, což
uživatel neví).

Original issue reported on code.google.com by kamil.paral on 2009-12-05 13:48:31

kparal avatar May 23 '15 20:05 kparal

1) najprv nie, ale teraz som to skusil, vysledok je ok

2) to som dal len tak, nic ine ma nenapadlo dat do nazvu issue

napada ma teda otazka co je zle .... 160znakov esmska dodrzala, zrejme je problem v
smsdiscount-e, zreje by bolo vhodne :
a) nasilu zapinat nahradenie diakritiky

b) osetrit chybu "<description>The text message you are trying to send is larger than
160 characters, please shorten your message.</description>" a do erroru dat ze
pravdepodobne posielate spravu z diakritikou, pre uspesne poslanie je potrebne
zaskrtnut "zmazanie diakritiky" v nastaveniac programu.  (prim tomto ma napada ci sa
nahradene diakritiky aplikuje aj na spravy vo fronte - typujem ze nie :) )

Original issue reported on code.google.com by tomas.kovacik on 2009-12-05 17:50:36

kparal avatar May 23 '15 20:05 kparal

No, tohle bude celkem problém. Je to obecná věc, která se může vyskytovat u mnoha
bran. Dalo by se to vyřešit definicí délky zprávy ve skriptu pro ascii znaky a pro
národní abecedy, ale to se mi moc nelíbí, už tak je definice skriptů komplikovaná.
Navíc některé brány mohou automaticky diakritiku odstraňovat, některé ne.

Nenapadá mě snadné řešení, snad kromě vylepšené chybové hlášky. Budu to muset
promyslet, třeba bude přes vánoce čas ;)

Original issue reported on code.google.com by kamil.paral on 2009-12-12 09:23:31

  • Labels added: OpSys-All, Component-Scripts, Component-Logic

kparal avatar May 23 '15 20:05 kparal

No, upravil jsem chybovou hlášku 'message too long', třeba to bude teď čitelnější.
Zároveň jsem udělal pár vylepšení v [INT]SMSdiscount, bylo by vhodné vyzkoušet, až
vyjde Esmska 0.18.0beta2. To jsou ale jen mírné změny, problémem zůstává, že u této
brány nebude fungovat správně rozdělování dlouhé zprávy do menších (protože to bude
stále hlásit příliš dlouhou zprávu).

K plnému vyřešení tohoto problému je třeba:
1. Vědět, zda brána uvádí maximální délku zprávy ve 7bitovém nebo 16bitovém kódování.
2. Mít seznam všech znaků použitých v 7bitovém kódování a pokud uživatel zadá jiný
znak do zprávy, příslušně přepočítat maximální délku zprávy (a brát v úvahu
odstraňování diakritiky, pokud je tato funkce zaplá).
3. Ideálně taktéž vědět, jestli brána sama neprovádí odstraňování diakritiky a
podobné čachry.

Original issue reported on code.google.com by kamil.paral on 2010-01-09 14:12:39

kparal avatar May 23 '15 20:05 kparal

mohli bychom opravdu rozdělit setting délky zprávy na S a BEZ diakritiky a tím se celý
problém vyřeší (pokud brána nebude nový option obsahovat, bude platit starý pro obě
hodnoty)

Original issue reported on code.google.com by [email protected] on 2011-05-12 08:51:09

kparal avatar May 23 '15 20:05 kparal

(No text was entered with this change)

Original issue reported on code.google.com by kamil.paral on 2011-05-30 09:39:25

kparal avatar May 23 '15 20:05 kparal