- Index by full E.164 digits instead of last-9 only; previously different people sharing a 9-digit suffix collided and lookups returned the wrong name. Resolve now tries longest match first. - match_digits default 9 -> 15 in code and example config. - Skip emoji/punctuation-only contact names so a junk card can't shadow a real one when a number is duplicated in the export. - Verified: 513 contacts self-consistent; 6 remaining collisions are genuine duplicate entries in the source VCF (two cards, same number), not a matcher error. Also: placed /home/jp/contacts.vcf at /var/lib/vm-transcribe/contacts.vcf (640 asterisk:asterisk), set backends=file, cleared stale cache, restarted vm-portal.
Examples
These files are templates. Copy to a live path and fill in secrets — the live files are git-ignored so credentials never get committed.
config/telegram.conf.example→/opt/vm-transcribe/telegram.confconfig/contacts.conf.example→/opt/vm-transcribe/contacts.conf
sudo install -o root -g asterisk -m 640 config/telegram.conf.example /opt/vm-transcribe/telegram.conf
sudo install -o root -g asterisk -m 640 config/contacts.conf.example /opt/vm-transcribe/contacts.conf
Then edit the real files with sudo and add your bot token / contacts source.