{"id":21660736,"url":"https://github.com/schorschii/quicksync4linux","last_synced_at":"2025-07-24T19:12:40.602Z","repository":{"id":181636551,"uuid":"667050224","full_name":"schorschii/QuickSync4Linux","owner":"schorschii","description":"Upload/download files, backup/sync contacts and communicate with your Gigaset devices","archived":false,"fork":false,"pushed_at":"2024-08-03T21:01:44.000Z","size":78,"stargazers_count":16,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-17T12:25:39.583Z","etag":null,"topics":["at","gigaset","obex","phonebook","quicksync","serial","vcf"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/QuickSync4Linux","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schorschii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["schorschii"],"liberapay":"schorschii","custom":["https://www.paypal.me/schorschii"]}},"created_at":"2023-07-16T13:30:33.000Z","updated_at":"2025-01-05T18:17:59.000Z","dependencies_parsed_at":"2024-06-01T21:43:25.019Z","dependency_job_id":"1e185f99-e0d7-4605-bbba-c23c22dccea3","html_url":"https://github.com/schorschii/QuickSync4Linux","commit_stats":null,"previous_names":["schorschii/quicksync4linux"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/schorschii/QuickSync4Linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FQuickSync4Linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FQuickSync4Linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FQuickSync4Linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FQuickSync4Linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schorschii","download_url":"https://codeload.github.com/schorschii/QuickSync4Linux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FQuickSync4Linux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266890406,"owners_count":24001545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["at","gigaset","obex","phonebook","quicksync","serial","vcf"],"created_at":"2024-11-25T09:38:33.115Z","updated_at":"2025-07-24T19:12:40.587Z","avatar_url":"https://github.com/schorschii.png","language":"Python","funding_links":["https://github.com/sponsors/schorschii","https://liberapay.com/schorschii","https://www.paypal.me/schorschii"],"categories":[],"sub_categories":[],"readme":"# QuickSync4Linux\nIt is annoying that companies always forget to implement their software for the most important operating system. This is a minimal implementation of the Gigaset QuickSync software for Linux.\n\nThe communication with the device is based on AT commands over a USB/Bluetooth serial port. For file transfer, the device is set into Obex mode.\n\n## Hardware Setup\nMake sure your user is in the dialout group in order to access the serial port.\n```\nsudo usermod -aG dialout \u003cusername\u003e\n# logout and login again to apply group membership\n```\n\n## Usage\nFirst, find out the correct serial port device. After connecting, a serial port like `/dev/ttyACM0` (USB on Linux), `/dev/tty.usbmodem` (USB on macOS) or `/dev/rfcomm0` ([Bluetooth on Linux](https://gist.github.com/0/c73e2557d875446b9603)) should appear. `/dev/ttyACM0` is used by default. If your device differs, you can use the `--device` parameter for every command or create a config file `~/.config/quicksync4linux.ini`.\n\n\u003cdetails\u003e\n\u003csummary\u003eExample: ~/.config/quicksync4linux.ini\u003c/summary\u003e\n\n```\n[general]\ndevice = /dev/rfcomm0\nbaud = 9600\n```\n\u003c/details\u003e\n\nThen, you can use one of the following commands:\n```\n# read device metadata\npython3 -m QuickSync4Linux info\npython3 -m QuickSync4Linux obexinfo\n\n# read device contacts and print VCF to stdout (use --file to store it into a file instead)\npython3 -m QuickSync4Linux getcontacts\n\n# create new contacts on device from vcf file\npython3 -m QuickSync4Linux createcontacts --file mycontacts.vcf\n\n# overwrite a contact with given luid 517\n# luid = Local Unique IDentifier; can be found in `getcontacts` vcf output\npython3 -m QuickSync4Linux editcontact 517 --file mycontact.vcf\n\n# delete contact with luid 517 from device\npython3 -m QuickSync4Linux deletecontact 517\n\n# show files on device\npython3 -m QuickSync4Linux listfiles\n\n# download file \"/Pictures/Gigaset.jpg\" from device into local file \"gigaset.jpg\"\npython3 -m QuickSync4Linux download \"/Pictures/Gigaset.jpg\" --file gigaset.jpg\n\n# upload local file \"cousin.jpg\" into \"/Clip Pictures/cousin.jpg\" on device\npython3 -m QuickSync4Linux upload \"/Clip Pictures/cousin.jpg\" --file cousin.jpg\n\n# delete file \"/Clip Pictures/cousin.jpg\" on device\npython3 -m QuickSync4Linux delete \"/Clip Pictures/cousin.jpg\"\n\n# start a call\npython3 -m QuickSync4Linux dial 1234567890\n```\n\nFor debug purposes and reporting issues, please start the script with the `-v` parameter and have a look at the serial communication.\n\n## Formats\n### VCF Structure\nThe Gigaset devices expect a VCF like the following example:\n```\nBEGIN:VCARD\nVERSION:2.1\nX-IRMC-LUID:769\nN:Last Name;First Name\nTEL;HOME:+49123456789\nTEL;CELL:+49456789123\nTEL;WORK:+49789123456\nBDAY:2020-01-01T09:00\nEND:VCARD\n```\n\nAnd with special chars encoded as Quoted Printable:\n```\nBEGIN:VCARD\nVERSION:2.1\nX-IRMC-LUID:1099\nN;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:|\\\\=C2=A7\\;;=C3=A4=C3=B6=C3=BC=\n=C3=9F\nTEL;HOME:+49123\nEND:VCARD\n```\n\n### Picture Format\nImportant: your image size should match the screen/clip size which can be found by the `info` command. The device will crash and reboot otherwise when trying to open a non-conform file.\n\nWhen using GIMP for image creation, use the following values in the JPG export dialog:\n- set \"Quality\" to 80 or below\n- **disable** \"Save Exif data\"\n- **disable** \"Save XMP data\"\n- **disable** \"Save thumbnail\"\n- **disable** \"Save color profile\"\n- **disable** \"Progressive\" in the \"Advanced Options\"\n\n### Sound Format\nSounds must use the g722 codec and must be uploaded with the `.L22` file extension. Own sounds can easily be converted into g722 using ffmpeg:\n```\nffmpeg -i \"Another brick in the wall part2.wav\" -ar 16000 -acodec g722 \"AnotherBrick2.g722\"\n\npython3 -m QuickSync4Linux upload \"/Sounds/AnotherBrick2.L22\" --file \"AnotherBrick2.g722\"\n```\n\nPlease cut your audio track into a reasonable length before converting and uploading it.\n\n## Dial When Clicking `tel:` Links\nTo start a call with you Gigaset when clicking `tel:` links, you need to register QuickSync4Linux as `tel:` handler in your operating system. On Linux, you do this by copying `quicksync4linux.desktop` into `/usr/share/applications` and then execute `update-desktop-database`.\n\n`quicksync` must be in you `PATH` variable. You can simply create a symlink for this: `sudo ln -s /path/to/your/quicksync.py /usr/local/bin/quicksync`.\n\n## Tested Devices\nPlease let me know if you tested this script with another device (regardless of whether it was successful or not).\n\n- Gigaset S68H (Bluetooth working, no USB port)\n- Gigaset CL660HX (USB working, no Bluetooth)\n- Gigaset SL450HX (USB + Bluetooth working)\n- Gigaset S700H PRO (USB + Bluetooth working)\n- Gigaset SL400H (USB working, Bluetooth is impossible to pair in GNOME because the PIN is not visible on the desktop at the moment you need to enter it in the handset)\n\n## Common Errors\n- `Device reported an AT command error`\n  Make sure you are on the home screen on the device. Do not open the contacts, menu or Media Pool when transferring data.\n\n## Support\nIf you like this project please consider making a donation using the sponsor button on [GitHub](https://github.com/schorschii/QuickSync4Linux) to support further development. If your financial resources do not allow this, you can at least leave a star for the Github repo.\n\nFurthermore, you can hire me for commercial support or adjustments and support for new devices. Please [contact me](https://georg-sieber.de/?page=impressum) if you are interested.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschorschii%2Fquicksync4linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschorschii%2Fquicksync4linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschorschii%2Fquicksync4linux/lists"}